arduino mangiatoia automatica

Mangiatoia automatica con Arduino

Mangiatoia automatica con Arduino : L’idea nasce nel mio nuovo progetto Arduino MEGA 2560 che è ancora in via di sviluppo (vedi foto sotto)

arduino mangiatoia automatica

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)

Mangiatoia automatica con Arduino

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

arduino mangiatoia automatica arduino mangiatoia automatica arduino mangiatoia automatica arduino mangiatoia automatica

 

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

Guida redatta da Michele Nardinocchi e impaginata da Marco Ferrara
©www.acquariofili.com