Arduino 101 grunderna (4 / 7 steg)
Steg 4: AnalogRead() och analogWrite()
I det här exemplet kommer jag Visa två uttalanden analogRead() och analogWrite(). Skissen jag använder kallas ReadAnalogVoltage att det kan läsas från fil / Examples/01.Basics, och jag lagt några rader för att Visa analogwrite().
Du behöver en Arduino, en potentiometer, en LED och några hoppare ledningar. Ansluta den mellersta pin av potentiometern till stift A0 (analoga 0) på Arduino, då den + ve leda till 5v på Arduino och - ve leda till GND på Arduino. Och Anslut den + ve bly led till D5 på Arduino och -ve leda till GND.
I denna skiss värdet av stiftet ska A0 skrivas på den seriella bildskärmen och på samma gång LED ljusstyrka ändras när vi vrider potentiometern.
Skiss:
int LEDpin = 5; Digital stift 5 har en LED fäst vid den
void setup() {
Serial.BEGIN(9600); initiera seriell kommunikation på 9600 bitar per sekund
pinMode (LEDpin, OUTPUT); Ange pin-läge på stift 5 till utgång
}
void loop() {
int sensorValue = analogRead(A0); läsa indata på analoga stift 0
flyta spänning = sensorValue * (5.0 / 1023.0); Konvertera analog läsning (som går från 0 - 1023)
till en spänning (0 - 5V)
analogWrite (LEDpin, spänning); Tillämpa värdet spänning till LED stift
Serial.println(Voltage); skriva ut värdet du läsa:
}
Låt oss dissekera skissen:
int LEDpin = 5;
Detta är en variabel av typen int kallas LEDpin decalring att det finns en LED på stift 5 på Arduino.
void setup() {
Serial.BEGIN(9600);
pinMode (LEDpin, OUTPUT);
}
Serial.BEGIN(9600): Börjar seriella bildskärmen med snabbhet 9600 baud per sekunder
pinMode (LEDpin, utgång): anger pin funktionsläget av stift 5 på Arduino till utgång.
void loop() {
int sensorValue = analogRead(A0);
flyta spänning = sensorValue * (5.0 / 1023.0);
analogWrite (LEDpin, spänning);
Serial.println(Voltage);
}
analogRead(): Den första raden är att förklara en ny lokal variabel kallas sensorValue av typen int och tilldelas värdet som vi läser från det analoga stiftet A0 på Arduino. Digital stiften kan läsa och skriva 1 och 0, men analogt stift på Arduino kan läsa och skriva värden mellan 0 och 1023.
Den andra raden introducerar en ny variabel av typen float (med decimaler) kallas spänning, denna nya lokal variabel värdet sensorValue*(5.0/1023.0). Nu kan vi se att värdet av en variabel kan manipuleras med hjälp av en matematisk ekvation. Sedan analogt stift ger resultat mellan 0 och 1023, och vi vill konvertera värdet till volt mellan 0 och 5 volt. Så vi tar det värde vi fick i sensorValue och multiplicera det med 5.0/1023.0 ger detta oss ett värde mellan 0 och 5 volt.
Exempel: Om vi vänder potentiometern halvvägs, analog Läs kommer att 512. Sedan tilldela vi värdet 512 sensorValue.
Enligt koden float spänningen = sensorvalue*(5.0/1023.0) sedan spänning = 512 * (5.0/1023.0) = 2,50 volt
analogWrite(): med detta uttalande kan vi skriva ett nytt värde i en PIN-kod, i exemplet ovan, tilldela värdet spänningen till LEDpin kommer att driva upp LED om det finns tillräcklig spänning.
Serial.println(): detta kommer att skriva ut värdet av spänning på serial bildskärmen.
LAMPAN som jag använt kommer att slå på svagt när spänningen når 1.3 volt