Stap 3: Upload de code op je arduino
De volgende code zal direct werken wanneer je de bouw precies hetzelfde hebt gedaan als hierboven is aangegeven.
BEGIN VAN DE CODE *** / / /
/*
Analoge ingang, analoge uitgang, uitgang voor seriële
Leest een analoge input pin, het resultaat wordt toegewezen aan een bereik van 0 tot 255 en wordt het resultaat ingesteld de pulsewidth modulatie (PWM) voor een uitgang Pins. De resultaten naar de seriële monitor wordt ook afgedrukt.
Het circuit: * potentiometer aangesloten op analoge pin 0. Centrum pin van de potentiometer gaat naar de analoge pin. zijkant pinnen van de potentiometer Ga naar + 5V en ground * LED aangesloten van digitale pin 9 op grond
gemaakt van 29 Dec. 2008 9 Apr 2012 gewijzigd door Tom Igoe
Deze voorbeeldcode is in het publieke domein.
*/
#include
Servo myservo;
Deze constanten niet gewijzigd. Ze gebruikt om namen te geven / / op de pinnen gebruikt: const int analogInPin = A0; Analoge invoer pin of de potmeter is aangesloten op const int analogOutPin = 9; Analoge uitgang pin die is gekoppeld aan de LED
int sensorValue = 0; waarde gelezen van de pot int outputValue = 0; waarde output naar de PWM (analoge uitgang)
int pos = 0; BOOL zon = false; BOOL scherm = false;
void setup {/ / initialiseren seriële communicatie 9600 bps: Serial.begin(9600);}
void loop {/ / Lees de analoge waarde: sensorValue = analogRead(analogInPin); / / kaart het aan het bereik van de analog out: outputValue = kaart (sensorValue, 0, 1023, 0, 255); / / wijzigen van de analoge waarde: analogWrite (analogOutPin, outputValue);
de resultaten naar de seriële monitor afdrukken: Serial.print ("sensor ="); Serial.Print(sensorValue); Serial.Print ("\t output ="); Serial.println(outputValue);
Als (sensorValue < = 850) {//sun schijnt, draai het ON if(pos == 0) {myservo.attach(10);} zon = true;} als (sensorValue > = 980) {//clouds incominggg if(pos > 760) {myservo.attach(10);} zon = false;}
Als (zon == true & & scherm == false) {pos ++; / / ++ de positie myservo.write(pos); Serial.Print(POS); if(POS >760) {scherm = true; myservo.detach();}} Als (zon == false & & scherm == true) {pos--; myservo.write(pos); if(pos == 0) {scherm = false; myservo.detach();}}
2 milliseconden voordat de next-lus wachten / / voor de analoog / digitaal-converter om te regelen / / na de laatste lezing: delay(2);
}
EINDE VAN DE CODE *** / / /