Projektin jäsenet: Varvara Zhilibovskaya, Susanna
Hyötyläinen ja Jenna Ahokas.
Projektimme idea oli rakentaa laite, joka automatisoi
kalojen ruokinnan. Laite mahdollistaa kalojen ruokinnan muutaman päivän ajaksi,
omistajan ollessa poissa. Kalanruokintalaite sopii pienelle akvaariolle ja se
ruokkii kalat kerran vuorokaudessa.
Käytimme projektin toteuttamiseen seuraavanlaisia osia The
Arduino Starter Kit:stä:
Arduino UNO
USB-johto
3 Hyppylankaa
Servo motor
MacBook pro 15' OS X Yosemite, Prosessori: 2,3 GHz Intel Core 17
Lisäksi käytimme lego Dublo osia.
Kytkentäkaavio |
#include <Servo.h>
unsigned long fed;
Servo servo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
servo.attach(9); // attaches the servo on pin 9 to the servo object
Serial.begin(9600);
fed = 0;
}
void loop() {
for (pos = 170; pos >= 0; pos -= 1) { // goes from 170 degrees to 0 degrees
servo.write(pos); // tell servo to go to position in variable 'pos'
delay(15);
// waits 15ms for the servo to reach the position
}
for (pos = 0; pos <= 170; pos += 1) { // goes from 0 degrees to 170 degrees
// in steps of 1 degree
servo.write(pos); // tell servo to go to position in variable 'pos'
delay(15);
// waits 15ms for the servo to reach the position
}
unsigned long timePassed = (millis() - fed) / 1000;
fed = millis();
//Serial.print( "Kalat ovat ruokittu ");
//Serial.print(timePassed);
// Serial.print(" sekunttia sitten, eli ");
// Serial.print(timePassed/60);
// Serial.println(" minuuttia sitten,eli ");
// Serial.print(0.0166,4 *(timePassed/60));
//Serial.println(" tuntia sitten");
//delay(10000); // 15 sekunttia sitten
//delay(60000-5000);
Serial.print( "Kalat ovat ruokittu ");
Serial.print(timePassed);
Serial.print(" sekunttia sitten, eli ");
Serial.print(timePassed/60);
Serial.println(" minuuttia sitten,eli ");
Serial.print((timePassed/60)/60);
Serial.println(" tuntia sitten");
delay((60000*60)-5000);
//Serial.print( "Kalat ovat ruokittu ");
// Serial.print(timePassed);
//Serial.print(" sekunttia sitten, eli ");
//Serial.print(timePassed/60);
//Serial.println(" minuuttia sitten,eli ");
//Serial.print((timePassed/60)/60);
// Serial.println(" tuntia sitten");
//delay(60000*(60*24)-5000);
//delay(1000/60); 5 sekunntia väli
//delay(1000); // kalat ovat ruokittu 6 sekuntioa sitten
//delay (10000); // kalat ovat ruokittu 15 sekunttia sitten
}
Käytimme projektiin +20 tuntia. Ensin käytimme DC Motoria, mutta se oli liian tehokas, joten vaihdoimme sen Servoon. Servon kanssa oli alkuun ongelmia, koska aina käynnistyessään se nytkähti nopeasti liikkeelle. Se piti määrittää alkupisteeseen ja vasta siitä käynnistää, jolloin ongelma ratkesi. C++ ei myöskään ohjelmointikielenä ole ollut kenellekkään meistä entuudestaan tutt, joten jouduimme perehtymään myös siihen.
Lähde: arduino.cc/en/Tutorial/Sweep
Ei kommentteja:
Lähetä kommentti