Stap 5: Arduino LED knipperen
In dit voorbeeld we kabellengte tot onze LED-schakeling aan één van de digitale pinnen van de Arduino en draai de LED in- en uitschakelen met code. In het volgende voorbeeld introduceert een paar nuttige functies ingebouwd in de taal van de Arduino, ze zijn:pinMode (pinNumber, modus) - pinMode wordt gebruikt tijdens het Setup-gedeelte van de schets voor het initialiseren van elke pin die we als een input of een uitgang gebruiken. We kunnen niet lezen of schrijven naar een pin, voordat pinMode gezet. pinMode() heeft twee argumenten - een pin-nummer (elk van de Arduino pinnen is voorzien van een nummer) en die in de modus dat we willen de pin ("INPUT" of "OUTPUT"). In het geval van een LED knipperen, sturen we gegevens uit de Arduino om controle van de staat van de LED, dus we "OUTPUT" als het tweede argument gebruiken.
digitalWrite (pinNumber, state) - digitalWrite is een opdracht die ons laat de spanning van een PIN-code ingesteld op 5V of grond (onthoud "ground" is synoniem met 0 volt). In het laatste voorbeeld wij vastgehaakt aan een LED aan een 5V-aanbod en zag het inschakelen, als we in plaats daarvan naar de LED aan één van de digitale pinnen van de Arduino aansluiten, wij kunnen de LED inschakelen door het instellen van de pin op de 5V en uit door de pin op de grond. digitalWrite() heeft ook twee argumenten - een pin-nummer en de staat van de pin ("HIGH" voor 5V en "Laag" voor grond).
delay(timeInMs) - vertraging wordt het programma onderbroken voor een bepaalde hoeveelheid tijd. Bijvoorbeeld, delay(2000) zal het onderbreken van het programma voor 2000 milliseconden (2000 milliseconden = 2 seconden), delay(100) zal het onderbreken van het programma voor 100 milliseconden (1/10 van een seconde), en zo verder...
Hieronder is de code van de LED knipperen, deze code uitvoert op uw Arduino.
//LED Blink int ledPin = 7;//the Arduino pin that is connected to the LED void setup() { pinMode(ledPin, OUTPUT);// initialize the pin as an output } void loop() { digitalWrite(ledPin, HIGH);//turn LED on delay(1000);// wait for 1000 milliseconds (one second) digitalWrite(ledPin, LOW);//turn LED off delay(1000);//wait one second }
Een paar opmerkingen over de code:
Regels die met beginnen "/ /" zijn opmerkingen - Arduino negeert deze.
Je hebt misschien gemerkt alle de puntkomma's, puntkomma's worden gebruikt aan het einde van elke opdracht in de taal van de Arduino. Als u een puntkomma vergeet, krijgt u een fout. U zult vinden dat vele andere programmeertalen gebruik puntkomma aan het einde van elke regel.
In deze code is "ledPin" een variabele. Variabelen worden gebruikt voor het opslaan van informatie in programma's, in deze schets, ik ben met behulp van de variabele "ledPin" om op te slaan op de nummer 7. Wanneer de Arduino raakt een lijn met de variabele "ledPin", zal het later in het programma de variabele volgens de huidige opgeslagen waarde beoordelen. Dus de regel:
pinMode (ledPin, OUTPUT);wordt geëvalueerd door Arduino als:
pinMode (7, OUTPUT);
In feite, we kunnen alle toepassingen van pinMode vervangen door het getal 7 en het programma zou werken precies hetzelfde, maar met behulp van de variabele helpt ons meer gemakkelijk te lezen en te begrijpen van de code.
"int" op de eerste regel is een gegevenstype - in de taal van de Arduino, u moet altijd variabelen initialiseren door te verklaren hun type. Er zijn veel verschillende types (u kunt lezen over alle van hen hier), voor nu alles wat je nodig hebt om te weten is dat int variabelen zijn positieve of negatieve gehele getallen - u hen vaak zal gebruiken.
Hieronder is een simulatie van de schets, proberen te drukken op de afspeelknop om te zien hoe het werkt (werkt het beste in Chrome)
Zoals verwacht, de LED gedurende één seconde ingeschakeld en vervolgens uitgeschakeld gedurende één seconde. Probeer de lengte van de delay() om te zien hoe het beïnvloedt de LED knipperen tijd wijzigen.
Een ander ding om uit te kijken voor - een fout die mensen vaak maken is aan het weglaten van de laatste delay() in de loop. Probeer het - vindt u dat de LED zonder te knipperen brandt. Dit zou verwarrend aan u, want we nog een digitalWrite (ledPin, LOW hebben) command in het programma. Wat gebeurt hier is de led is uitgeschakeld, maar de Arduino onmiddellijk raakt het einde van de loop en begint de eerste regel van de loop opnieuw uitvoeren (het draaien van de LED op). Dit gebeurt zo snel dat het menselijke oog niet de LED-turn zien voor dat korte moment tijdens het opstarten van de lus.