This is an old revision of the document!


Arduino Smart Flower

Introducere

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.

Descriere generală

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:

Hardware Design

Pentru a realiza acest proiect vom avea nevoie de:

Componente Numar Descriere generală Poza
Placa de dezvoltare Uno R3 compatibil Arduino 1
Stepper Motor pas cu pas 5V DC 28BYJ-48 cu reductie + driver 1 Am folosit motorul stepper pentru a reusi sa rotesc ghiveciul cu florea atat pe partea stanga, cat si pe partea dreapta.
Modul senzor lumina 2 Pentru a roti ghiveciul stanga-dreapta am folosit aceste module de lumina, unul folosindu-l pentru partea dreapta a ghiveciului si unul pentru partea stanga.
Senzor magnetic MC-38 USA 1 Acesta detecteaza momentul in care este realizata o rotatie completa si atunci se va opri pentru cateva secunde si va porni din nou in functie de directia data.
Cuplaj flexibil(5mm) 1 Cuplajul este atasat de motorul stepper si cu ajutorul lui fixez foarte bine ghiveciul cu floarea realizat.
Suruburi M4 1 Suruburile sunt folosite tot pentru sustinerea ghiveciului.


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:



Software Design

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);
  }
}

Am folosit libraria Servo.h pentru a putea controla stepperul.

Am ales sa folosesc drept mediu de dezvoltare Arduino IDE.


Rezultate Obținute

TODO

Concluzii

TODO

Download

Jurnal

25 Aprilie → alegere tema proiect

Bibliografie/Resurse

TODO

pm/prj2021/apredescu/arduinosmartflower.1622393598.txt.gz · Last modified: 2021/05/30 19:53 by fconstandache
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0