Stap 5: Knipperen: digitale uitgangen
Blink: eerste Arduino code
Wanneer u de stekker in uw Arduino voor de eerste keer, ziet u een groen licht (met 'ON' volgende geschreven-dit is de voedings-LED) en een oranje licht dat (met 'L knippert' geschreven ernaast). Dit is de standaard 'Blink' programma, het de interne LED inschakelt voor een tweede, dan schakelt deze weer uit voor een tweede, voor eeuwig herhalende.
Neem een blik bij de code: de Arduino IDE Open en ga naar bestand > voorbeelden > 01. Basics > knipperen.
Het eerste ding u zult opmerken, zijn de eerste 14 lijnen die lichter zijn dan de rest. Al tekst geplaatst tussen de * / / * ondertekent, is een opmerking. Dit is een commentaar van meerdere regels. Op regel 17, er zijn enkele meer opmerkingen, ze gebruiken de / / exploitant, alles op die lijn, die komt na de / / is een opmerking. De volgende regel is gewoon normaal code weer, je niet hoeft te sluiten deze opmerking van één regel, in tegenstelling tot de opmerking van de multi-lijn.
Opmerkingen worden gebruikt om uw code beter leesbaar, dus het sterk aanbevolen is dat u ze in uw eigen programma's gebruiken. Het is niet echt nodig in een klein programma, zoals Blink, maar wanneer u code van over duizend lijnen schrijft, zult u zeer dankbaar zijn als u hebt toegevoegd enkele opmerkingen, zodat u kunt begrijpen wat een bepaald stuk van code doet en hoe het werkt.
U kunt ook de commentaar-exploitanten (tijdelijk) een stukje code, zonder het te verwijderen permanent uitschakelen. Dit werkt, omdat de opmerkingen niet doen krijgen geüpload naar de Arduino. (Ze worden genegeerd door de compiler, het stuk van software dat converteert de code die u schrijft in de Arduino IDE op opdrachten die de Arduino begrijpt.) Dit betekent ook dat zij doen niet elke ruimte innemen in de Arduino de (beperkte) geheugen, alleen op de vaste schijf van uw computer.
Arduino Referentie: opmerkingen
Het volgende stukje code die we tegenkomen is 'void setup {'
Dit is de setup routine, het slechts éénmaal uitgevoerd, telkens wanneer de Arduino wordt opgestart. (ongeldig is een gegevenstype, het betekent dat geen informatie wordt geretourneerd door de setup, meer hierover later. De twee haakjes worden gebruikt in elke functie, doorgeven van gegevens via; Setup hoeft niet alle gegevens, dus de haken leeg zijn. Maak je geen zorgen als je niet dit begrijpt nog, zullen wij het in detail in de stap over functies behandelen.)
Alles tussen de twee gekrulde haakjes of accolades na 'void setup' de code is die wordt uitgevoerd tijdens de installatie. Zorg ervoor dat u altijd uw haakjes sluiten, anders krijg je vreemde fouten. De IDE helpt u met dit door te wijzen op de andere beugel, als u één selecteert.
De eerste echte opdracht is 'pinMode (13, OUTPUT);'. Zoals u al geraden misschien, dit heeft te maken met de twee rijen van pinnen op elke Arduino: deze pinnen kunnen worden gebruikt als een ingang of als uitgang. Het eerste getal is de pincode die we gebruiken als uitgang, 13 in dit geval willen, aangezien alle Arduino boards Arduino boards een ingebouwde LED aangesloten op pin 13 hebben. OUTPUT, het tweede argument van de functie van de pinMode, is een constante. Dit is een waarde die is gedefinieerd door de software zelf, en een gemakkelijke naam heeft gekregen. Constanten zal hebben een blauwe kleur.
(De waarde van de OUTPUT is 1, die is een beetje contra-intuïtief, sinds haar O ziet eruit als een 0, en de I van de INPUT-constante ziet eruit als een 1. pinMode(13,OUTPUT) precies hetzelfde als pinMode(13,1) )
Standaard hebben van de Arduino pinnen zijn ingesteld als een input, maar met behulp van de functie van de pinMode, wij nu pin 13 als uitgang. Wij nog niet verteld welke waarde die we output nog, willen dus het zal gewoon 0. Dit betekent dat binnen de chip, pin 13 is aangesloten op de 0v, dit is de grond. Als u met de 5 v-pin pin 13 nu verbinden wilt, maakt u een -kortsluiting! Wees voorzichtig!
Arduino tutorials: digitale pennen
In de Arduino IDE, en andere programmeertalen C-achtige, wordt elke verklaring beëindigd met een puntkomma (;), zoals u in dit voorbeeld Blink zien kunt. Als je cryptische fouten wanneer het proberen om te uploaden, zijn een van de eerste dingen om te controleren de puntkomma's. Allermeest naar de tijd, krijg je een foutmelding als deze: Blink: 16: fout: verwacht ',' of ';' voor...
16 is niet de lijn waar er een ontbreekt een puntkomma, maar de regel met de volgende opdracht/instructie.
Arduino Referentie:; puntkomma
Het volgende element van de structuur is 'void loop {'
De code tussen de gekromde haken wordt uitgevoerd nadat de installatie voltooid is, en voor eeuwig zal herhalen (ten minste totdat u opnieuw opstarten van de Arduino, of een ander programma uploaden).
De volgende functie is 'digitalWrite (13, hoge)'
Dit 'schrijft' pin 13 hoge, met andere woorden, verbindt het intern aan op de 5v pin. De LED op de Arduino is aangesloten tussen de grond en pin 13, dus nu er 5 v over de LED is, en het omhoog zal aansteken.
Wees niet worden te kort nu pin 13 op de grond, zal het een kortsluiting maken!
Kunt u dezelfde functie met de lage constante zo goed wordt gebruikt, zal dit pin 13 sluit aan op de grond (binnen de chip). Nu is er geen spanningsverschil over de LED, en het zal gaan.
In plaats van hoog en laag, kunt u ook gebruiken 1 en 0, of waar en ONWAAR.
Arduino Referentie: digitalWrite
De laatste functie is een zeer intuïtief: delay(1000)
Hij wacht alleen op een bepaalde hoeveelheid tijd, in milliseconden. In dit geval zal het wachten 1000 ms, of 1 seconde, voordat de volgende opdracht wordt uitgevoerd.
Arduino Referentie: vertraging
Als we bij de lijn 29 aankomen, beginnen we op lijn 25, omdat we in de lus.
Samenvatting:
- In het Configuratiemenu, die alleen worden uitgevoerd als wanneer het programma wordt gestart, we pin 13 ingesteld als uitgang.
- In de lus, we maken de output van de led HIGH (5v), wachten 1,000ms, het laag (0v) en wachten op een ander tweede. Deze lus zal voor altijd worden herhaald (tenminste totdat u opnieuw opstarten van de Arduino, of uploaden van een ander programma)
- / * Dit is een commentaar * / dit is niet
- Dit is niet een commentaar / / dit is een reactie
- iedere instructie eindigt met een puntkomma;
- void setup {} is de functie die wordt uitgevoerd zodra, wanneer de Arduino opstart
- void loop {} is de functie die wordt herhaald voor eeuwig, nadat de setup is uitgevoerd
- pinMode(pin,OUTPUT); of pinMode(pin,1); de bepaalde pin ingesteld als uitgang
- digitalWrite (pin, staat); Hiermee stelt u een bepaalde pin high (5v) of laag (0v). Staat kunnen hoog of laag, 1 of 0, waar of onwaar zijn.
- Delay(time); wacht op een bepaalde hoeveelheid tijd, in milliseconden.