Arduino zonnescherm (3 / 5 steg)
Steg 3: Ladda upp de koden op je arduino
De volgende kod zal direkt werken wanneer je de bouw precies hetzelfde hebt gedaan als hierboven är aangegeven.
BÖRJA VAN DE KODEN *** / / /
/*
Analog ingång, analog utgång, seriell utgång
Läser en analog ingångsstift kartor resultatet till ett intervall från 0 till 255 och används resultatet för att ange den pulsewidth moduleringen (PWM) av en utgångsstiftet. Resultat till seriell monitor också skrivs ut.
Kretsen: * potentiometer ansluten till analoga stift 0. Mittstift potentiometerns går till analoga PIN-koden. sidan pins potentiometerns gå till + 5V och jord * LED ansluten från digital stift 9 till marken
skapad 29 dec 2008 uppdaterad 9 Apr 2012 av Tom Igoe
Denna exempelkod är offentlig.
*/
#include
Servo myservo;
Dessa konstanter ändras inte. De är vana att ge namn / / till stiften används: const int analogInPin = A0; Analoga ingångsstift att potentiometern är ansluten till const int analogOutPin = 9; Analog utgång pin som LED är kopplad till
int sensorValue = 0; värdet läsa från potten int outputValue = 0; värdet utdata till PWM (analog utgång)
int pos = 0; bool solen = false; bool skärmen = false;
void setup() {/ / initiera seriell kommunikation på 9600 bps: Serial.begin(9600);}
void loop() {/ / läsa analogt värde: sensorValue = analogRead(analogInPin); / / karta den till spänna av den analoga ur: outputValue = karta (sensorValue, 0, 1023, 0, 255); / / ändra analog ut värde: analogWrite (analogOutPin, outputValue);
skriva ut resultatet till seriell monitor: Serial.print ("sensor ="); Serial.Print(sensorValue); Serial.Print ("\t output ="); Serial.println(outputValue);
om (sensorValue < = 850) {//sun skiner, tur det på if(pos == 0) {myservo.attach(10);} solen = sant;} om (sensorValue > = 980) {//clouds incominggg if(pos > 760) {myservo.attach(10);} solen = false;}
om (sun == true & & skärm == false) {pos ++; / / ++ ståndpunkt myservo.write(pos); Serial.Print(POS); IF(POS >760) {skärmen = true; myservo.detach();}} om (sun == false & & skärm == true) {pos--; myservo.write(pos); if(pos == 0) {skärmen = false; myservo.detach();}}
vänta 2 millisekunder innan nästa slingan / / för analog till digital omvandlare sedimentera / / efter den sista behandlingen: delay(2);
}
EINDE VAN DE KODEN *** / / /