This is an old revision of the document!
Elementul central al proiectului este floarea pe care o folosesc. Aceasta se roteste in functie de intensitatea maxima a luminii.
Am ales acest proiect deoarece iubesc foarte mult natura si mediul inconjurator si imi place foarte mult sa am grija de plantele mele
si sa le ofer tot ce au nevoie. Astfel, ele vor putea beneficia mereu de lumina care este necesara dezvoltarii lor armonioase, rotindu-se in functie de intensitatea de care au nevoie.
Prin alegerea acestei teme, cu siguranta imi voi putea valorifica cunostintele dobandite in cadrul laboratoarelor intr-un mod placut si util.
Pentru relizarea acestui proiect folosesc un motor stepper care face posibil ca planta sa se roteasca, cat si un senzor magnetic prin care detectez cand s-a facut o rotatie completa. De asemenea, pentru detectia intensitatii luminii folosesc si senzori de lumina cu fotorezistente. Pentru atasarea si sustinerea corecta a ghiveciului cu planta, ma ajut de un cuplaj, cu ajutorul caruia prind axul motor de tava rotativa pe care se va afla floarea pe care o folosesc.
Diagrama bloc corespunzatoare proiectului:
Pentru a realiza acest proiect vom avea nevoie de:
Pe langa aceste componente a fost nevoie si sa realizez suportul pentru motorul stepper pentru ca acesta sa stea fix(suport pe care l-am realizat din lemn) si am folosit suruburi pentru a prinde motorul de suport. Am mai folosit, de asemenea, suruburi pentru a prinde ghiveciul realizat de mine de cuplaj si a sta fix pentru realizarea proiectului.
Schema cablaj:
In final, proiectul arata in felul urmator:
Codul de implementare este:
#include <Stepper.h> const int stepsPerRevolution = 200; // initialize the stepper library on pins 9 through 12: Stepper myStepperRight(stepsPerRevolution, 9, 11, 10, 12); Stepper myStepperLeft(stepsPerRevolution, 9, 10, 11, 12); int time = 0; int sensorState = 0; int lightRight = 0; int lightLeft = 0; void setup() { //----------------SENZORII DE LUMINA---------- pinMode(8, INPUT); pinMode(7, INPUT); //----------------SEZNSORUL MAGNETIC---------- pinMode(2, INPUT_PULLUP); Serial.begin(9600); } // 1 cand sunt departate // 0 cand sunt apropiate void loop() { //---------------SEZNORII DE LUMINA----------- lightLeft = digitalRead(8); lightRight = digitalRead(7); //---------------SENZORUL MAGNETIC------------ sensorState = digitalRead(2); if (sensorState == 0 && time < 400) { delay(25); } time++; if (time > 400 && time < 800) { sensorState = 1; } if (time > 800) { time = 0; } //conditie a motorului in functie de fiecare senzor de lumina //senzorul stang sau cel drept if (lightLeft == LOW && sensorState) { int motorSpeed = map(280, 0, 1023, 0, 100); myStepperLeft.setSpeed(motorSpeed); // step 1/100 of a revolution: myStepperLeft.step(stepsPerRevolution / 100); } if (lightRight == LOW && sensorState) { int motorSpeed = map(400, 0, 1023, 0, 100); myStepperRight.setSpeed(motorSpeed); // step 1/100 of a revolution: myStepperRight.step(stepsPerRevolution / 100); sensorState = digitalRead(2); } }
TODO
TODO
Link pagina: https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/arduinosmartflower
Link documentatie: https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/arduinosmartflower?do=export_pdf
25 Aprilie → alegere tema proiect
6 Mai → discutie pe baza pieselor
7 Mai → comandarea pieselor
10 Mai → sosirea pieselor
13 Mai - 22 Mai → realizarea proiectului(prima data am facut suportul pentru stepper, apoi partea hardware si apoi cea software
TODO