Kör två saker samtidigt
Blinka och läs av en knapp samtidigt.
Kör två saker samtidigt är en gratis lektion i Arduino & IoT Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Arduino & IoT Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Arduino & IoT Academy innehåller totalt 4 lektioner.
Drömmen om multitasking
Riktiga enheter gör många saker samtidigt: de blinkar med en lampa medan de övervakar en knapp. Med icke-blockerande tidtagning kan kortet äntligen hantera båda.
Varje uppgift får sin egen tidtagare
Tricket är en tidtagare per uppgift. Ge blinkningen ett eget previousMillis och intervall, åtskilda från allt annat du vill köra.
Håll reda på tiden separat
Använd ett separat previousMillis för LED:en så att dess schema aldrig blandas ihop med andra tidsstyrda uppgifter i samma loop.
unsigned long ledPrevious = 0;
const long ledInterval = 500;Blinkblock
Först kontrollerar blinkblocket sin egen tidtagare. När 500 millisekunder har gått växlar det LED:ens läge och nollställer tidtagaren. Sedan går programmet vidare.
if (millis() - ledPrevious >= ledInterval) {
ledPrevious = millis();
}Läs av knappen i varje loop
Direkt efter blinkblocket läser du av knappen i varje varv. Eftersom ingenting har frusit missas ingen knapptryckning.
int state = digitalRead(buttonPin);Två uppgifter, en loop
Nu hanterar samma loop båda: den tidsstyr blinkningen och kontrollerar knappen tusentals gånger per sekund. Det känns som om de sker samtidigt.
Lägg till en tredje uppgift
Vill du göra mer? Lägg bara till ytterligare en tidtagare och ett block, till exempel för att läsa av en sensor varannan sekund. Mönstret kan enkelt utökas till många uppgifter.
Håll loopen snabb
Regeln som får det att fungera är: blockera aldrig. Håll varje del av loopen snabb så att den ofta kan återgå och ge alla uppgifter tid.
Inte verklig parallellism
Kortet gör fortfarande en sak i taget, bara mycket snabbt. Det här är kooperativ multitasking, där varje uppgift gör lite och lämnar över.
Gör dig av med den långa delay
En enda lång delay var som helst förstör hela illusionen eftersom den fryser alla uppgifter. Byt ut pauser mot millis-kontroller för att hålla allt smidigt.
Hjärtat i responsiva IoT-system
Den här tillståndsmaskins-stilen, med många små tidsstyrda kontroller i en loop, är grunden för hur responsiva sensorer, skärmar och uppkopplade enheter faktiskt byggs.
Snabb kontroll
Hur kan en loop blinka en LED och läsa av en knapp samtidigt?
Sammanfattning
Du kombinerade tidtagare i en loop för att multitaska: blinka och läsa av en knapp samtidigt, utan en blockerande delay. Det är den centrala färdigheten bakom riktiga IoT-enheter. 🚀
Lär dig C++ med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Kör två saker samtidigt” gratis?
Ja – hela texten till ”Kör två saker samtidigt” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Arduino & IoT Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Arduino & IoT Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Kör två saker samtidigt”?
Blinka och läs av en knapp samtidigt. Ni övar på Arduino & IoT Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Arduino & IoT Academy?
Du behöver inga förkunskaper. Utbildningen i Arduino & IoT Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Kör två saker samtidigt”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Arduino & IoT Academy-lektionen?
Ja. Varje Arduino & IoT Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- int, float, bool på Arduino
- Varför delay() blockerar allt
- Blinka utan delay med millis
- Kör två saker samtidigt