Stap 3: Eenvoudige Code
De servomotor wordt bestuurd door Arduino code, grote delen van de code verwijzen naar servo sweep voorbeeld, ik van plan om te voeden van de vissen eenmaal of tweemaal per dag, waarschijnlijk op hetzelfde moment, dus ik moet een timer, vond ik de millis() functie zeer bruikbaar om te rekenen van de tweede, te voeden van zodra dagelijks ik heb ingesteld de teller 86400 seconden , geen behoefte RTC.
De roller door servomotor op 180 graden draaide, ik heb getest het rollen moet drie keer genoeg voedsel, de shake()-functie zal worden opgeroepen drie keer elk 86400 seconden, save water opslaan macht!
#include < Servo.h >
Servo myservo; servo-object om te bepalen van een servo maken / / twaalf servo-objecten kunnen worden gemaakt op de meeste planken
int tweede = 0;
int pos = 0; variabele op te slaan van de servo positie
VOID Setup {}
myservo.attach(9); de servo op pin 9 hecht aan de servo-object
myservo.write(POS);
Serial.begin(9600);
}
void loop {}
statische unsigned long lastTick = 0;
Als (millis() - lastTick > = 1000) {}
lastTick = millis();
tweede ++;
Serial.println(Second);
}
Als (tweede > = 86400) {//or 43200 voor twee keer per dag
Shake();
delay(100);
Shake();
delay(100);
Shake();
tweede = 0; teller reset
}
}
VOID shake() {/ / roll zou veel beter, in eerste instantie vind ik te schudden, in dit voorbeeld in de Arduino IDE
voor (pos = 0; pos < = 180; pos += 1) {/ / gaat van 0 graden tot 180 graden / / in stappen van 1 graad
myservo.write(POS); servo naar positie in de variabele 'pos' vertellen
delay(15); wacht 15ms voor de servo te bereiken de positie
}
voor (pos = 180; pos > = 0; pos-= 1) {/ / gaat van 180 graden tot 0 graden
myservo.write(POS); servo naar positie in de variabele 'pos' vertellen
delay(15); wacht 15ms voor de servo te bereiken de positie
}
}