Inhoudsopgave:
- Stap 1: De kaarten en de circuits
- Stap 2: Het programma om een Multitask State Machine uit te voeren
- Stap 3: Tot slot
Video: State Machine en multitasking op Arduino met SPI-expanders - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Vorige week vroeg ik om een systeem te maken om vuurwerk te besturen met een Arduino. Er waren ongeveer 64 uitgangen nodig om de branden te beheersen. Een manier om dit te doen is om IC-uitbreidingen te gebruiken. Er zijn dus 2 oplossingen beschikbaar:
- een I2C-uitbreiding, maar deze heeft een omvormer nodig wanneer u de IC inschakelt (zie mijn vorige instructable op finite state machine) omdat alle uitgangen snel AAN en UIT gaan: een probleem met vuurwerk.
-een SPI ook gemakkelijk te gebruiken en zonder problemen bij het inschakelen.
Dus besloot ik dit soort expanders te bestuderen. Ik gebruik ook een state-machine met multitasking om digitale 16 I/O en 2 analoge uitgangen aan te sturen. Deze kaart is ontworpen om automatiseringssystemen zoals een PLC te besturen.
Ik heb ook de verschillen en de vertaling bestudeerd tussen de tekeningen van het toestandsdiagram en een andere grafiek die veel in de automatisering wordt gebruikt: de SFC (Sequentiële Functiekaart) op basis van de voormalige petrinets.
en.wikipedia.org/wiki/Sequentiële_functie_…
fr.wikipedia.org/wiki/Grafcet
Stap 1: De kaarten en de circuits
Ik gebruik een arduino uno en 2 soorten DIL-chips:
- de MCP23S17, 2 x 16 I/O expander aangestuurd met SPI
-de MCP4921, DAC 12 bits, 0/5V
Deze IC's zijn erg goedkoop en betrouwbaar en ook nog eens heel makkelijk te koppelen en te programmeren. Op het schema heb ik wat extra componenten gebruikt zoals ontkoppelcondensatoren, pull-down weerstanden voor de ingangen.
Stap 2: Het programma om een Multitask State Machine uit te voeren
Het globale idee is om digitale I/O te besturen en ondertussen een fade ON/OFF-effecten te lanceren op LED's die zijn aangesloten op de beide analoge uitgangen.
Een ander ding, ik doe met opzet de aparte aansluiting van de CS-pinnen (chip select) om meer mogelijkheden te hebben voor meer IC op de SPI-bus. Dus ik gebruikte:
- een speciale bibliotheek voor de staatsmachine
-een speciale bibliotheek voor de MCP23S17
- GEEN speciale bibliotheek voor de MCP4921, de CS en de SPI-verbinding is zacht "handig" gedaan.
Je kunt op de foto's de vertaling zien tussen de verwachte toestandsmachine en SFC (ook wel GRAFCET of gr7 in het frans genoemd). Enkele veel voorkomende termen: gelijktijdige toestanden, multitasken en inkapseling.
Ik voorzie de bibliotheken en de broncode van veel commentaar. Om het te lezen en te begrijpen, moet u tegelijkertijd ook het toestandsdiagram of de SFC lezen.
Stap 3: Tot slot
Het werkt!!
Wanneer u het systeem opstart, wacht u een paar seconden en gebruikt u dan de uitbreiding (tijd om de SPI-bus te starten).
Het systeem reageert zeer snel en u moet een stroominterfacekaart maken als u welke machine dan ook wilt besturen. Zie mijn vorige instructables, het is heel gemakkelijk !!
Dank aan zeer interessante en werkende tutorials over de hele wereld.
Manu4371.
Aanbevolen:
Maak je eigen solid-state relais: 4 stappen (met afbeeldingen)
Maak je eigen solid-state relais: in dit project zullen we kijken naar solid-state relais, ontdekken hoe ze werken en wanneer ze te gebruiken en uiteindelijk onze eigen DIY Solid State Relay maken. Laten we beginnen
Solid State Tesla-spoelen en hoe ze werken: 9 stappen
Solid State Tesla-spoelen en hoe ze werken: Hoogspanningselektriciteit kan GEVAARLIJK zijn, neem te allen tijde de juiste veiligheidsmaatregelen wanneer u met Tesla-spoelen of een ander hoogspanningsapparaat werkt, dus speel op veilig of speel niet. Tesla-spoelen zijn een transformator die werkt op zelfresonerende oscillato
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een Solid State-opstartschijf installeren: 9 stappen
Hoe een Solid State-opstartschijf te installeren: met de vooruitgang van de technologie in het tempo dat het is, verschuift alles nu naar het rijk van computers en digitale media. Met deze verschuiving zien we dat steeds meer mensen onderwijs gaan volgen met betrekking tot deze onderwerpen, zoals informatica of
Voorlopig* SPI op de Pi: communiceren met een SPI 3-assige versnellingsmeter met behulp van een Raspberry Pi: 10 stappen
Voorlopig* SPI op de Pi: communiceren met een SPI 3-assige versnellingsmeter Een Raspberry Pi gebruiken: stapsgewijze handleiding voor het instellen van Raspbian en communiceren met een SPI-apparaat met behulp van de bcm2835 SPI-bibliotheek (NIET bit-banged!) Dit is nog steeds heel voorlopig… Ik moet betere foto's van de fysieke aansluiting toevoegen en een aantal lastige code doornemen