Stap 5: Als verklaring
Ik zal gebruiken hetzelfde circuit zoals in het vorige voorbeeld en zet de LED, met behulp van een if/else statement. De als verklaring een zeer efficiënte manier is om conditie kennismaken met de code. Ik zal gebruik maken van de Sketch genaamd IfStatementConditional gevonden in de Arduino IDE onder File/Examples/05.Control.
Je moet een Arduino, een potentiometer, een LED en paar jumper draden. De middelste pin van de potmeter naar pin A0 (analoge 0) op de Arduino, sluit dan de + ve leiden tot de 5v op de Arduino en de ve - leiden met de GND op de Arduino. En verbinden de + ve voorsprong van de LED aan D5 op de Arduino en de ve - leiden tot GND.
In deze schets de waarde van de pin wordt A0 geprint op de seriële monitor en tegelijkertijd die de helderheid van de LED veranderen zal wanneer we de potmeter.
De schets
Const int analogPin = A0; PIN waarop de sensor is aangesloten
Const int ledPin = 5; PIN die is gekoppeld aan de LED
Const int drempel = 400; een willekeurige drempel die is in het bereik van de analoge ingang
VOID Setup {}
pinMode (ledPin, OUTPUT); Initialiseer de LED-pin als uitgang:
Serial.begin(9600); Initialiseer seriële communicatie:
}
void loop {}
int analogValue = analogRead(analogPin); de waarde van de potentiometer lezen:
Als (analogValue > drempel) {/ / als de analoge waarde hoog genoeg is, schakelt u de LED:
digitalWrite (ledPin, hoge);
}
else {}
digitalWrite (ledPin, laag);
}
Serial.println(analogValue); de analoge waarde afdrukken
delay(1); vertraging in tussen leest voor stabiliteit
}
Laten we ontleden de schets:
Const int analogPin = A0;
Const int ledPin = 5;
Const int drempel = 400;
Zoals gewoonlijk beginnen we met de variabelen, dit keer die heb ik gekozen voor het gebruik van "const int" als een soort, wat betekent dat de waarde van de variabelen zal nooit veranderen.
- analogPin zal altijd worden aangesloten op analoge pin 0
- ledPin wordt altijd gekoppeld aan digitale pin 5
- drempel zal altijd bij 400
VOID Setup {}
pinMode (ledPin, OUTPUT);
Serial.begin(9600);
}
Er is niets nieuw in de void setup, zetten we de pin 5 aan OUTPUT, aangezien er een LED aan het en we beginnen met de seriële monitor 9600 bps
void loop {}
int analogValue = analogRead(analogPin);
Als (analogValue > drempel) {}
digitalWrite (ledPin, hoge);
}
else {}
digitalWrite (ledPin, laag);
}
Serial.println(analogValue);
delay(1);
}
De eerste regel in de leegte lus is de verklaring van een lokale variabele van het type int genaamd analogValue en we toewijzen aan de waarde die we uit de analogPin-variabele lezen.
Als en if/else statements:
Syntaxis:
- Als (voorwaarde) {opdracht uitvoeren als de voorwaarde is voldaan}
Syntaxis
- Als (voorwaarde) {opdracht uitvoeren als de voorwaarde is voldaan}
- else {een andere opdracht uitvoeren als voorwaarde is niet voldaan}
in het volgende voorbeeld:
Als (een > b) {digitalWrite (ledPin, hoge);}
of
Als (een > b) {digitalWrite (ledPin, hoge);}
else {digitalWrite (ledpin2, hoge);}
Elke keer als we zijn met behulp van een if verklaring, we zijn op zoek om te voldoen aan een bepaalde voorwaarde, bijvoorbeeld als "a" groter dan "b is". En als het resultaat geldt dan we kunnen uitvoeren wat is tussen de accolades. Als het resultaat niet waar is vervolgens niets te doen.
Nu als u gebruikmaakt van een if/else-instructie, en het resultaat is niet waar, dan wat is onder "anders" zal uitvoeren.
De beste manier om een voorwaarde instellen is het gebruik van de vergelijking en logische operatoren.
Vergelijkingsoperatoren:
Ze worden gebruikt voor het vergelijken van variabelen en constanten tegen elkaar opnemen om te controleren als een bepaalde voorwaarde is voldaan.
== Gelijk aan een == b controles als een gelijk is aan b
! = Niet gelijk aan een! = b controles als een is niet gelijk aan b < minder dan een < b controleert of een kleiner is dan b > groter dan een > b controleert of een is groter dan b < = minder dank of gelijk aan een < = b controles als een is minder dan of gelijk aan b > = groter dan of gelijk aan een > = b controles als een groter is dan of gelijk aan b
Opmerking: het verschil tussen = en ==. = wordt gebruikt voor het toewijzen van een variabele een nummer of een waarde, terwijl == wordt gebruikt om te vergelijken twee variabele.
Logische operatoren:
Logische operatoren worden gebruikt voor het vergelijken van twee expressies en geeft als resultaat waar of onwaar. De logische operators zijn AND(&&), OR(||), en niet (!).
Logische en als (een > b & & c < d) enige true als beide expressies waar zijn
Logische of (een > b || c < d) True als één of beide expressies waar is
Logische niet als (! een > b) waar alleen als de expressie onwaar is
Laten we terug naar de schets
Als (analogValue > drempel) {}
digitalWrite (ledPin, hoge);
}
else {}
digitalWrite (ledPin, laag);
}
- Hier zijn we het testen om te zien als de analogValue groter dan de drempel is: als (analogValue > drempel)
- Als zo dan de LED inschakelen: digitalWrite (ledPin, hoge);
- Zoniet: anders {}
- Schakel de LED: digitalWrite (ledPin, laag);
Serial.println(analogValue): de waarde van analogValue op de seriële monitor afdrukken
delay(1): een minuscuul vertraging van 1 milliseconde te stabiliseren van de lezing