Video: Top 10 Arduino projects 2019 । Amazing Arduino school projects genius youtuber 2024
Med PBASIC FOR-slingan gör BASIC Stamp i ditt elektronikprojekt en slinga ett visst antal gånger. Det är också ett bra programmeringsverktyg för att utföra en åtgärd på flera I / O-stift. Således är en FOR-slinga det perfekta sättet att genomföra ett LED Flasher-program.
Grundstrukturen för en FOR-slinga ser så här ut:
FÖR mot = startvärde till slutvärde uttalanden … NÄSTA
Här är ett exempel som blinkar lysdioden på stift 0 tio gånger:
X VAR BYTE FÖR X = 1 TO 10 HIGH 0 PAUSE 500 LOW 0 PAUSE 500 NEXT
I det här exemplet körs slingan tio gånger. Värdet av variabeln X ökas med 1 varje gång genom slingan.
I det föregående exemplet använde programmet inte faktiskt räknevariabeln. Det är vanligt i FOR-slingor; Ibland är det enda syftet med diskvariabeln att styra hur många gånger slingan exekveras. Men du kan använda räknaren i loppet. Till exempel, här är en slinga som gör varje I / O-stift på Stamp HIGH för en tiondel av en sekund:
IO_Pin VAR BYTE FÖR IO_Pin = 0 TO 15 HIGH IO_Pin PAUSE 100 LOW IO_Pin NEXT
Normalt ökas räknevariabeln med en på var och en genom slingan. Du kan använda STEP-sökordet för att ange ett annat stegvärde om du vill. När du använder STEP-sökordet ser den grundläggande strukturen för FOR-satsen ut så här:
FÖR räknare = startvärde TILL slutvärde STEG stegvärde Uttalanden … NÄSTA
Du kan till exempel blinka lysdioder på bara de jämnsta stiften så här:
Led VAR Byte FOR Led = 0 TO 10 STEG 2 HIGH LED PAUSE 100 LOW LED NEXT
En annan intressant egenskap hos FOR-loopar är att de kan räkna bakåt. Allt du behöver göra är att ange ett startvärde som är större än slutvärdet, så här:
Led VAR Byte FOR Led = 10 till 0 STEG 2 HÖG LED PAUS 100 LOW LED NEXT
Denna version av LED Flasher programmet använder ett par FOR-loopar för att blinka LED-lamporna först i en riktning och sedan i motsatt riktning. Den första FOR-slingan blinkar lysdioderna på stift 0, 2, 4, 6 och 8. Därefter blinkar den andra FOR-slingan LED-lamporna på stiften 10, 8, 6, 4 och 2. Båda FOR-slingorna finns i ett DO loop som håller LED-lamporna studsande fram och tillbaka på obestämd tid.
"LED Flasher Program" Doug Lowe "10 juli 2011" Detta program blinkar lysdioder anslutna till stift 0, 2, 4, 6, 8 och 10 'fram och tillbaka, som Cylon eyes. "Den här versionen av programmet använder FOR-slingor."{$ STAMP BS2}" {$ PBASIC 2. 5} Led VAR Byte Main: FOR Led = 0 TO 8 STEG 2 HIGH LED PAUSE 100 LOW LED NEXT FOR LED = 10 TO 2 STEG 2 HIGH LED PAUSE 100 LOW LED NEXT GOTO Huvud
När FOR-slingor är kapslade, fyller de innersta slingorna hela sin cykel varje gång genom ytterslingan. Om en FOR-slinga som upprepas tio gånger placeras inom en yttre slinga som upprepas tio gånger, utförs satsen inom den inre slingan totalt 100 gånger - tio gånger för var och en av de 10 upprepningarna av den yttre slingan.
Den här använder en yttre FOR-slinga som varierar fördröjningstiden för PAUSE-satsen. Resultatet är att LED-lamporna sveper väldigt snabbt i början men långsamt med 10 ms vid varje upprepning av ytterslingan tills fördröjningen når en sekund per LED.
"LED Flasher Program" Doug Lowe "10 juli 2011" Detta program blinkar lysdioder anslutna till stift 0, 2, 4, 6, 8 och 10 'fram och tillbaka, som Cylon eyes. "Denna version av programmet använder inbäddade FOR-NEXT-slingor för att sakta ner LED-slingrörelsen. '{$ STAMP BS2}' {$ PBASIC 2. 5} Led VAR Bytehastighet VAR Ord för hastighet = 10 till 1000 steg 10 för led = 0 till 8 steg 2 högt ledt PAUSE hastighet lågt ledt nästa steg för led = 10 till 2 steg 2 HIGH LED PAUSE Hastighet LOW LED NEXT NEXT