Dozator automat pentru hrănit peștii (1) - Design-ul pentru partea mecanica și schema electronică

Dozator automat pentru hrănit peștii - Design-ul pentru partea  mecanica și schema electronică

La un moment dat o sa plec în vacanță (probabil la anu), și practic nu prea are cine sa hrănească peștii.


 Si m-am gândit la un aparat automat programabil de hrănit peștii, care mi-ar fi foarte util. Știu că există deja aparate gata făcute, dar sincer am vrut să-l creez eu de la zero, că tot duceam lipsă de provocări (și în plus s-au cam terminat serialele faine de pe Netflix :D ).  Așa că am pornit un nou proiect "îndrăzneț". 

Practic am o cutie cu mâncare pentru pești, care este prevăzută cu un buton în lateral.
 

Ansamblul mecanic

M-am gândit să creez un ansamblu care o să transforme mișcarea de rotație a unui motor în mișcare de translație (vezi roata dințață și împingătorul/ pinion- cremalieră). Am creeat în tinkercad un ansamblu în care să poziționez cutia de mâncare în dreptul împingătorului (cremalieră). 

 Acest împingător apasă butonul cutiei de mâncare, iar în urma apăsării bobițele curg in acvariu. În acest articol am creeat și imprimat toate componentele mecanice și le-am testat împreună cu placa arduino și servomotor. Până acum funcționează totul bine. În următorul articol o să adaug și un modul RTC (PCF8523) care o să-mi permită să hrănesc peștii la o oră fixă.


Ansamblu în care să poziționez cutia de mâncare și unde se montează servomotorul:
Roata dințată:
Împingătorul :
Toate componentele asamblate:
Ansamblul împreună cu recipientul pentru mâncarea pestilor:
Montajul motorului :



Vedere de jos, în care se observă orificiul cutiei pe unde curg bobițele de mâncare pentru pești:


Schema electronica

Am folosit o placa Arduino Nano Every si un servomotor mic SG90 (21.5 x 11.8 x 22.7 mm).
Firu de semnal este cel galben și care se conecteaza la portul D9 la placa Arduino:



Cod de test: 

#include "Servo.h"
#include "stdint.h"
#include "time.h"
#include "stdio.h"

Servo myservo;  // create servo object to control a servo 
int pos = 0;    // variable to store the servo position
int pos_read = 0;    // variable to store the servo position
void setup() {
  Serial.begin(9600);

  myservo.attach(3);  //the pin for the servoa control

  Serial.println("Servo motor v1 "); 
}

void loop() {

  for (pos = 0; pos <= 90; pos += 1) { // goes from 0 degrees to 90 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  pos_read= myservo.read();
   Serial.println(pos_read); 
  for (pos = 90; pos >= 0; pos -= 1) { // goes from 90 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }

    pos_read= myservo.read();
    
   Serial.println(pos_read);

}


Urmează montarea RTC-ului (RealTimeClock) și testele cu tot sistemul (controler , servomotor și modulul real time clock) !
Sărbători fericite cu multă sănătate !

Etichete

Afișați mai multe

Arhiva

Afișați mai multe