Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Panneau de suivi solaire à deux axes avec modes automatique et manuel

Composants et fournitures

Arduino UNO
× 1
Potentiomètre rotatif (générique)
× 2
LED (générique)
× 2
Interrupteur à bouton-poussoir SparkFun 12mm
× 1
Servos (Tower Pro MG996R)
× 2
Résistance photo
× 4
Résistance 10k ohm
× 5
Résistance 221 ohm
× 2

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Autodesk Tinkercad
Arduino IDE

À propos de ce projet

C'est un projet que mes élèves ont mis en place lors de la soirée club Jeunes Hackers 2017-2018. C'est un projet exigeant pour les élèves du primaire et il nous a fallu de nombreuses rencontres pour le réaliser. Il contient un petit panneau solaire 5V qui peut tourner sur deux axes afin de récolter le maximum d'énergie du soleil. Le projet est basé sur le projet Dual Axis Solar Tracker d'OpenSourceClassroom.

Nous voulions implémenter deux modes dans le produit final.

  • Un mode manuel - contrôlé par deux pots.
  • Un mode automatique – contrôlé avec quatre capteurs de lumière.

Pour ce faire, nous avons programmé l'appareil pour qu'il change de mode à l'aide d'un bouton-poussoir et de deux voyants lumineux. Lorsque l'appareil est en mode manuel, le voyant rouge est allumé et nous pouvons contrôler la rotation du panneau dans deux axes à l'aide de deux potentiomètres. Lorsque l'appareil est en mode automatique, la lumière bleue est allumée et la rotation du panneau est déterminée par la lumière collectée par les quatre LDR. La programmation a été faite dans tinkercad.

Les élèves ont travaillé en groupes dans le style d'une chaîne de production pour accomplir les tâches. (fil à souder, fil isolant, vissage de pièces etc.).

Code

  • Code du panneau solaire rotatif
Code du panneau solaire rotatifArduino
Le code final du panneau solaire à double axe
#include //Initialize variablesint mode =0 ; int buttonState =0; int prevButtonState =0; int topLeftLight =0; int topRightLight =0;int bottomLeftLight =0;int bottomRightLight =0;int LeftLight =0;int RightLight =0;int TopLight =0;int BottomLight =0;//Déclarer deux servosServo servo_9;Servo servo_10;void setup(){ pinMode(7, ENTRÉE); //Bouton Mode pinMode(12, SORTIE); //Indicateur LED pour le mode manuel pinMode(11, OUTPUT); //Indicateur LED pour le mode automatique pinMode (A0, INPUT); //Potentiomètre pour le mouvement droite-gauche pinMode(A1, INPUT); //Potentiomètre pour le mouvement de haut en bas pinMode(A2, INPUT); //Capteur de lumière vers le haut - pinMode gauche (A3, INPUT); //Capteur de lumière vers le haut - pinMode droit (A4, INPUT); // Capteur de lumière en bas - pinMode gauche (A5, INPUT); // Capteur de lumière en bas - droit servo_9.attach(9) ; //Moteur servo droit - mouvement gauche servo_10.attach(10) ; //Mouvement haut - bas du servomoteur}boucle vide (){ buttonState =digitalRead (7) ; if (buttonState !=prevButtonState) { if (buttonState ==HIGH) { // Changer de mode et allumer le bon indicateur if (mode ==1) { mode =0; digitalWrite(12, HAUT); digitalWrite(11, LOW); } else { mode =1; digitalWrite (11, HAUT); digitalWrite(12, LOW); } } } prevButtonState =buttonState; retard (50); // Attendre 50 millisecondes (s) if (mode ==0) { // Si le mode est manuel mapper les valeurs du pot aux degrés de rotation servo_9.write(map(analogRead(A0), 0, 1023, 0, 180) ); servo_10.write(map(analogRead(A1), 0, 1023, 0, 180)); } else { // si le mode est automatiquement mappé les valeurs du capteur à 0-100 intensité lumineuse. //Chaque capteur de lumière a une sensibilité différente et doit d'abord être testé //pour ses valeurs hautes et basses topLeftLight =map(analogRead(A2),50,980,0,100); topRightLight =map(analogRead(A3),200,990,0,100); bottomLeftLight =map(analogRead(A4),170,970,0,100); bottomRightLight =map(analogRead(A5),250,1000,0,100); //Calculez les conditions d'éclairage moyennes TopLight =((topRightLight + topLeftLight) / 2); BottomLight =((bottomRightLight + bottomLeftLight) / 2); LeftLight =((topLeftLight + bottomLeftLight) / 2); RightLight =((topRightLight + bottomRightLight) / 2); //Faire pivoter les servos si nécessaire if (abs((RightLight - LeftLight))> 4) { //Changer la position uniquement si la différence de lumière est supérieure à 4% if (RightLight  LeftLight) { if (servo_9.read()> 0) { servo_9.write((servo_9.read() - 1)); } } } if (abs((TopLight - BottomLight))> 4) { //Modifier la position uniquement si la différence de luminosité est supérieure à 4% if (TopLight  BottomLight) { if (servo_10.read()> 0) { servo_10.write((servo_10.read() + 1)); } } } }}

Schémas

Schéma de câblage

Processus de fabrication

  1. Capteur DHT11 avec LED et haut-parleur piézo
  2. Capteur d'obstacles simple avec Arduino
  3. Solar Tracker V2.0
  4. Traqueur solaire basé sur l'Internet des objets (IoT)
  5. cube LED 4x4x4 avec Arduino Uno et 1sheeld
  6. Compteur RPM basé sur Arduino avec un nouvel algorithme plus rapide
  7. La galvanoplastie avec du cuivre
  8. Plateforme de panneaux solaires à servocommande et suivi de la lumière
  9. Panneau solaire :problèmes de qualité et points de contrôle clés