Mangiatoia automatica con Arduino : L’idea nasce nel mio nuovo progetto Arduino MEGA 2560 che è ancora in via di sviluppo (vedi foto sotto)
come tutti ben sappiamo le mangiatoie che si trovano in commercio delle più note marche hanno al massimo 5 o 7
pasti servibili durante l’arco della giornata, nel mio progetto la gestione dei pasti è inlimitata
nel senso che posso servire pasti a giorni alterni, tutti i giorni, 5 giorni a setttimana con due giorni di digiuno, ecc. ecc.
oltre a questo essendo pilotato da un Arduino NANO V3.0 posso disattivare il filtro 30 secondi prima la somministrazione del pasto in modo da non fare arrivare il mangime nel filtro, dare il tempo ai pesciolini di consumare il tutto e riattivare il filtro
il tutto con una minuscola scheda chiamata Arduino NANO V3, ingrado di svolgere innumerevoli funzioni (vedi foto sotto)
i materiali che ocorrono sono:
- Arduino Nano V3.0
- Motorino passo passo + sceda ULN2003
- Dispenser di una vecchia mangiatoia
- Alcuni cavi
- Contenitore dove alloggiare motore ecc.
- Alimentatore da 5V
anche se nel mio progetto posso alimentare Arduino NANO V3.0 tramite Arduino Mega 2560
ho preferito inserire un alimentatore per rendere la cosa gestibile da chiunque si volesse avvivinare al mondo dell’automatismo
sotto un breve video della prova motore della Mangiatoia automatica con Arduino
di seguito ci sono alcune foto dettagliate del progetto finito
QUì trovate lo sketch della Mangiatoia automatica con Arduino
// MANGIATOIA int motorPin1 = 6; // Blue - 28BYJ48 pin 1 int motorPin2 = 7; // Pink - 28BYJ48 pin 2 int motorPin3 = 8; // Yellow - 28BYJ48 pin 3 int motorPin4 = 9; // Orange - 28BYJ48 pin 4 // Red - 28BYJ48 pin 5 (VCC) int motorSpeed = 2000; //variabile per impostare la velocità passo-passo int count = 0; // Numero di passi fatti int countsperrev = 510; // numero di passi per giro completo int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001}; ////////////////////////////////////////////////////////////////////////////// void setup() { //dichiarare i pin del motore come uscite pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); Serial.begin(9600); } ////////////////////////////////////////////////////////////////////////////// void loop(){ if(count < countsperrev ) clockwise(); else if (count == countsperrev * 2) count = 0; else anticlockwise(); count++; } ////////////////////////////////////////////////////////////////////////////// //// setta i pin dell'ULN2003 accesi in sequenza da 1 a 4 //ritarda "MotorSpeed??" tra ogni pin (per determinare la velocità) void anticlockwise() { for(int i = 7; i < 8; i++) { setOutput(i); delayMicroseconds(motorSpeed); } delay (500);//con questo delay se tolto la mangiatoia gira e riposa 1 secondo a ciclo continuo, così attende circa 4 minuti } void clockwise() { for(int i = 7; i >= 0; i--) { setOutput(i); delayMicroseconds(motorSpeed); } } void setOutput(int out) { digitalWrite(motorPin2, bitRead(lookup[out], 0));//1 se faccio questa sequenza dentro le parentesi digitalWrite(motorPin1, bitRead(lookup[out], 1));//2 del motorpin, il motore gira in senso orario digitalWrite(motorPin4, bitRead(lookup[out], 2));//3 digitalWrite(motorPin3, bitRead(lookup[out], 3));//4 }
e questo è il video del funzionamento
Si ricorda che trattasi di apparecchiature sotto tensione quindi maneggiare con cura
Non si ritiene responsabile ne’ il compilatore di questa guida ne’ la direzione del forum acquariofili per eventuali danni o malfunzionamenti arrecati da questa guida.
PS: E’ vietato copiare anche parzialmente questo articolo e relative immagini senza l’autorizzazione dello staff di acquariofili e del proprietario