Stap 1: Kerngegevens #1. splitsing van de aan / uit functies
1. de functies "ON" en "OFF" te splitsen in aparte secties
Plaatsen van de aan en uit functies in hun eigen secties binnen het script was een groot stuk van deze puzzel voor mij. Voorafgaand aan doen dus ik was dicht bij het krijgen van de LEDs te reageren de manier waarop die ik wilde, maar het nog steeds was niet goed.
Ik heb nu alle functies om te schakelen de LEDs ON gegroepeerd onder de "ledsON:" label. En alle functies om te schakelen de LEDs terug uit opnieuw zijn samen onder de "ledsOFF:" label.
Dit liet ook mij te doorlopen van de "ON" sectie van de code meerdere malen voordat u naar de sectie "OFF". Hierdoor is het programma te halen meer van de wijzigingen in de waarde van de gemiddelde sensor. Maar je moet rekening houdend met het feit dat de meer tijden die u uitvoeren via de sectie ON hoe langzamer het programma de OFF-secties krijgt.
Laten we praten over deze "label" secties in deze schets. Als u een label voor hebt gebruikt, geen paniek. Denk aan een label als niets meer dan een bladwijzer in uw code. En maken van een label kan niet makkelijker-
LABEL1: (Opmerking de dikke darm, u Niet toevoegen een puntkomma aan het einde van een label)
Thats it, we zojuist een label (bladwijzer) genaamd "LABEL1". Nu kun je direct naar de functies onder LABEL1: vanuit een willekeurige locatie in uw script. Labels zijn zeer nuttig vooral wanneer gecombineerd met andere functies zoals "als"-instructies.
Hier is een snelle voorbeeld:
In het volgende voorbeeld, dat wij hopen dat 'x' altijd is gelijk aan 10 anders lijkt het alsof we gonna een nucleaire raket lanceren!
............
Als (x = 10 goto LABEL1); (Opmerking: Niet het gebruik van de dikke darm aan het einde van een labelnaam bij het aanroepen van het)
raket voorbereiden op lancering
digitalWrite (veiligheid, laag); Er is een veiligheidsschakelaar? Blijkbaar draaide we het uit!
digitalWrite (start, hoge); lancering van de raket - bummer
LABEL1:
seriële. Println ("X was gelijk aan 10");
seriële. Println ("verwijderen hoofd tussen de knieën")
.........
In het bovenstaande voorbeeld zolang "x" gelijk aan 10 is het programma zal overslaan alles inclusief "/ / raket voorbereiden op lancering" en ga direct naar de code onder LABEL1.
Maar er is een probleem, het programma zal blijven lezen van de code die na LABEL1, met inbegrip van de aanvullende code die wordt verderop in het script dat preps en lanceert de back-up Tomahawkraketten komt. Het is gebruikelijk bij einde labels gebruiken om een naam: aan het einde van uw schets. Het einde: etiket kunt krijgen van de heck van dodge. Om te voorkomen dat het programma van de lancering van de Tomahawks wanneer het wordt naar dat deel van de code, stoppen we het programma om naar dat deel van de code! Als wij moesten toevoegen
goto einde;
onder de laatste serie. Println lijn boven de schets zal gaan rechtstreeks naar het einde en overslaan die Tomahawks evenals de lancering.