Mihai85 Postat Decembrie 18, 2015 Partajează Postat Decembrie 18, 2015 (editat) Buna seara. Avand in vedere ca se apropie sarbatorile si trebuie sa plecam de acasa m-am gandit sa fac un hranitor pt singurul peste din specia Betta pe care il am. Hranitoarele ce se gasesc in comert varsa o cantitate minima mult prea mare pt acest peste iar acesta va manca pana se va umfla. Am folosit o placa Arduino impreuna cu motorul stepper 28byj-48 5v care la 12h ,sa zicem, face o tura completa si varsa niste granule . M-ar interesa cum sa fac ca motorul sa nu mai fie alimentat in timpul de asteptare. Motorul singur consuma vreo 450-500mA permanent si sta caldut. Avand in vedere ca nu e o aplicatie pretentioasa ,plus ca motorul are reductor sta blocat de la sine , nu ma intereseaza daca s-ar pierde cativa pasi la o conectare/deconectare , Nu am folosit un modul cu ceas gen ds1307 , am dat un delay corespunzator pt 12h si am setat o viteza pt motor. Am folosit codul de mai jos : #include <Stepper.h> #define STEPS_PER_MOTOR_REVOLUTION 32 //---( Steps per OUTPUT SHAFT of gear reduction )--- #define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //2048 //The pin connections need to be 4 pins connected // to Motor Driver In1, In2, In3, In4 and then the pins entered // here in the sequence 1-3-2-4 for proper sequencing Stepper small_stepper(STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11); int Steps2Take; void setup() { } void loop() { Steps2Take = STEPS_PER_OUTPUT_REVOLUTION ; // Rotate CW 1 turn small_stepper.setSpeed(800); small_stepper.step(Steps2Take); delay(43200000);// 12h } https://www.youtube.com/watch?v=mdLRmB1qqcQ Editat Decembrie 18, 2015 de mihaitza1985 Link spre comentariu
of-of Postat Decembrie 18, 2015 Partajează Postat Decembrie 18, 2015 de ce a trebuit motor pas cu pas cand puteai sa faci cu unul normal si un releu ? Link spre comentariu
Mihai85 Postat Decembrie 18, 2015 Autor Partajează Postat Decembrie 18, 2015 Un motor normal, cu perii va da peste cap de mai multe ori recipientul, nu stii pozitia in care se va opri si va putea varsa mancarea in apa daca se opreste cu gaurelele in jos. Se poate face pana la urma si cu motor , cu niste microswich-uri si alte complicatii. Motorul il aveam si aplicatia e temporara, sau nu... Link spre comentariu
of-of Postat Decembrie 18, 2015 Partajează Postat Decembrie 18, 2015 eu opream si pompa-cascada pentru o juma de ora, ca sa nu traga grauntele si sa aiba pestii timp sa manance. Cu gaurile in jos pot sa-l faci sa nu se opreasca, dar fulgii aia se mai si electrizeaza daca borcanul e de plastic. am avut si eu probleme din astea ca am mai multi pesti mici, dar au supravietuit 3 saptamani singurei. Motorul consuma prin driver. Nu e nevoie sa opresti placa arduino, doar ramura de 5v care alimneteaza driverul. Link spre comentariu
Mihai85 Postat Decembrie 18, 2015 Autor Partajează Postat Decembrie 18, 2015 Tubul l-am ales special. E de vit C efervescenta. E din aluminiu iar dopul din plastic contine graunte de silicagel si imi mentine continutul uscat. Da o sa ma gandesc la o solutie sa opresc alimentarea driverului cu ULN2003 ,probabil inseriind un un tranzistor comandat de o iesire separata. Link spre comentariu
nico_2010 Postat Decembrie 21, 2015 Partajează Postat Decembrie 21, 2015 In continuare ai un sketch care cred ca te va ajuta (si fara sa foloseasca DS1307 sau alt RTC). Acolo unde sunt setarile de alarme iti introduci actionarea motorului din sketch-ul postat de tine. Daca la compilare iti da eroare cum ca "Time.h: no such file", descarci cele doua atasamente, le dezarhivezi si le instalezi in folderul "Libraries" din Arduino IDE, intr-un singur folder sau in doua. Atentie, pastrezi denumirea lor, altfel ai erori de compilare. /** TimeAlarmExample sketch** This example calls alarm functions at 8:30 am and at 5:45 pm (17:45)* and simulates turning lights on at night and off in the morning** A timer is called every 15 seconds* Another timer is called once only after 10 seconds** At startup the time is set to Jan 1 2010 8:29 am*/#include <Time.h>#include "TimeAlarms.h"void setup(){Serial.begin(9600);Serial.println("TimeAlarms Example");Serial.println("Alarms are triggered daily at 8:30 am and 17:45 pm");Serial.println("One timer is triggered every 15 seconds");Serial.println("Another timer is set to trigger only once after 10 seconds");Serial.println();setTime(8,29,40,1,1,10); // set time to 8:29:40am Jan 1 2010Alarm.alarmRepeat(8,30,0, MorningAlarm); // 8:30am every dayAlarm.alarmRepeat(17,45,0,EveningAlarm); // 5:45pm every dayAlarm.timerRepeat(15, RepeatTask); // timer for every 15 seconds}void MorningAlarm(){Serial.println("Alarm: - turn lights off");}void EveningAlarm(){Serial.println("Alarm: - turn lights on");}void RepeatTask(){Serial.println("15 second timer");}void loop(){digitalClockDisplay();Alarm.delay(1000); // wait one second between clock display}void digitalClockDisplay(){// digital clock display of the timeSerial.print(hour());printDigits(minute());printDigits(second());Serial.println();}void printDigits(int digits){// utility function for digital clock display: prints preceding colon and leading 0Serial.print(":");if(digits < 10)Serial.print('0');Serial.print(digits);} TimeAlarms.zip Time.zip Link spre comentariu
Mihai85 Postat Decembrie 22, 2015 Autor Partajează Postat Decembrie 22, 2015 Multumesc. O sa incerc. Link spre comentariu
Liviu M Postat Decembrie 22, 2015 Partajează Postat Decembrie 22, 2015 Eu l-am facut cu servo: Link spre comentariu
Mihai85 Postat Decembrie 22, 2015 Autor Partajează Postat Decembrie 22, 2015 Nu bazaie servoul intr-una? Daca e servo analogic e mai cuminte. Link spre comentariu
Liviu M Postat Decembrie 22, 2015 Partajează Postat Decembrie 22, 2015 Nu, n-are nici un motiv. Primeste comenzi numai cand trebuie sa se miste. Link spre comentariu
Mihai85 Postat Decembrie 22, 2015 Autor Partajează Postat Decembrie 22, 2015 Comenzi inseamna variatia duratei semnalului intre 1 si 2 ms, dar el tot timpul e comandat cu un semnal in acest interval si incearca sa isi mentina pozitia mai ales daca atarni o greutate de el. Link spre comentariu
Liviu M Postat Decembrie 22, 2015 Partajează Postat Decembrie 22, 2015 (editat) Nu e nevoie sa-l comanzi decat atunci cand chiar vrei sa se miste. In rest, n-are de ce. La mine servo-ul e pe post de deget care apasa butonul unui dozator de-asta. Apasa de cate ori e nevoie si revine in pozitia de "relaxare", dupa care nu-i mai trebuie nici o comanda. Cred c-ai putea sa ma crezi, functioneaza de cativa ani. Ce-i drept, limiteaza tipul de mancare folosibila, da' 3 saptamani (maxim) de vacanta e OK. Cea mai mare problema e cu umezeala, desi ultimele dati l-am montat mai sus si parca a fost mai bine. Editat Decembrie 22, 2015 de Liviu M Link spre comentariu
of-of Postat Decembrie 22, 2015 Partajează Postat Decembrie 22, 2015 citind mi-am amintit unde am o mecanica din asta gata facuta. Exista niste suporti de la Glade unde pui sprayuri odorizante(tot de la ei) si din cand in cand iti apasa pe buton. Toata mecanica e facuta, doar trebuie adaptat putin. Link spre comentariu
Mihai85 Postat Decembrie 22, 2015 Autor Partajează Postat Decembrie 22, 2015 (editat) Referitor la servo, ce am eu e cam scump pt aplicatia asta. Momentan l-am lasat asa, vad ca merge de vreo 2 zile. Am alimentat arduino+ motor+driver dintr-un incarcator de iphone. Daca se ia curentul asta este, norocul lui mai mananca o data si se reseteaza timerul de la ora respectiva . Ce se vede in plus e un afisaj de nokia 3310 care arata temp apei si un dimmer pt iluminatul cu led-uri, manual cu potentiometru. Rama facuta la cnc iar butonul strunjit. Editat Decembrie 22, 2015 de mihaitza1985 Link spre comentariu
Vizitator Postat Ianuarie 4, 2016 Partajează Postat Ianuarie 4, 2016 Cand eram mai mic asa am facut ca sa imi hranesc pestii. A mers ideea si sunt mandru de realizarea mea de atunci. Am rezolvat o problema importanta atunci. . Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum