Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Painel de rastreamento solar de eixo duplo com modo automático e manual

Componentes e suprimentos

Arduino UNO
× 1
Potenciômetro rotativo (genérico)
× 2
LED (genérico)
× 2
SparkFun Botão de pressão 12 mm
× 1
Servos (Tower Pro MG996R)
× 2
Resistor de foto
× 4
Resistor 10k ohm
× 5
Resistor 221 ohm
× 2

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Aplicativos e serviços online

Autodesk Tinkercad
Arduino IDE

Sobre este projeto


Este é um projeto que meus alunos implementaram durante o clube noturno Young Hackers de 2017-2018. É um projeto exigente para alunos do ensino fundamental e nos custou muitas reuniões para realizá-lo. Ele contém um pequeno painel solar de 5 V que pode girar em dois eixos de modo a obter o máximo de energia solar. O projeto é baseado no Projeto Dual Axis Solar Tracker da OpenSourceClassroom.

Queríamos implementar dois modos no produto final.
  • Um modo manual - controlado por dois potes.
  • Um modo automático - controlado com quatro sensores de luz.

Para isso, programamos o dispositivo para alternar entre os modos com a ajuda de um botão e dois leds indicadores. Quando o aparelho está no modo manual a luz vermelha acende e podemos controlar a rotação do painel em dois eixos com o auxílio de dois potenciômetros. Quando o dispositivo está no modo automático, a luz azul está acesa e a rotação do painel é determinada pela luz coletada dos quatro LDRs. A programação foi feita no tinkercad.

Os alunos trabalharam em grupos em um estilo de linha de produção para completar as tarefas. (soldagem de fio, isolamento de fio, aparafusamento de peças, etc.).










Código

  • Código do painel solar rotativo
Código do painel solar rotativo Arduino
O código final do painel solar de eixo duplo
 #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; // Declara dois servosServo servo_9; Servo servo_10; void setup () { pinMode (7, INPUT); // Botão de modo pinMode (12, OUTPUT); // Indicador Led para modo manual pinMode (11, OUTPUT); // Indicador Led para modo automático pinMode (A0, INPUT); // Potenciômetro para movimento direita-esquerda pinMode (A1, INPUT); // Potenciômetro para movimento de cima para baixo pinMode (A2, INPUT); // Sensor de luz para cima - esquerdo pinMode (A3, INPUT); // Sensor de luz para cima - pinMode direito (A4, INPUT); // Sensor de luz inferior - esquerdo pinMode (A5, INPUT); // Sensor de luz inferior - direito servo_9.attach (9); // Servo motor direito - movimento esquerdo servo_10.attach (10); // Movimento para cima - para baixo do servo motor} void loop () {buttonState =digitalRead (7); if (buttonState! =prevButtonState) {if (buttonState ==HIGH) {// Altere o modo e acenda o indicador correto if (mode ==1) {mode =0; digitalWrite (12, ALTO); digitalWrite (11, BAIXO); } mais {modo =1; digitalWrite (11, ALTO); digitalWrite (12, BAIXO); }}} prevButtonState =buttonState; atraso (50); // Aguarde 50 milissegundos (s) if (mode ==0) {// Se o modo for manual, mapeie os valores do potenciômetro para graus de rotação servo_9.write (map (analogRead (A0), 0, 1023, 0, 180) ); servo_10.write (map (analogRead (A1), 0, 1023, 0, 180)); } else {// se o modo for mapear automaticamente os valores do sensor para 0-100 de intensidade leve. // Cada sensor de luz tem uma sensibilidade diferente e deve ser testado primeiro // para seus valores altos e baixos 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); // Calcular as condições médias de luz TopLight =((topRightLight + topLeftLight) / 2); BottomLight =((bottomRightLight + bottomLeftLight) / 2); LeftLight =((topLeftLight + bottomLeftLight) / 2); RightLight =((topRightLight + bottomRightLight) / 2); // Gire os servos se necessário if (abs ((RightLight - LeftLight))> 4) {// Mude a posição apenas se a diferença de luz for maior que 4% if (RightLight  LeftLight) {if (servo_9.read ()> 0) {servo_9.write ((servo_9.read () - 1)); }}} if (abs ((TopLight - BottomLight))> 4) {// Mude a posição apenas se a diferença de luz for maior que 4% if (TopLight  BottomLight) {if (servo_10.read ()> 0) {servo_10.write ((servo_10.read () + 1)); }}}}} 

Esquemas

Esquema de fiação

Processo de manufatura

  1. Sensor DHT11 com LEDs e um alto-falante Piezo
  2. Sensor de obstáculo simples com Arduino
  3. Solar Tracker V2.0
  4. Rastreador solar baseado na Internet das coisas (IoT)
  5. Cubo de LED 4x4x4 com Arduino Uno e 1sheeld
  6. Contador RPM baseado em Arduino com um algoritmo novo e mais rápido
  7. Galvanoplastia com cobre
  8. Medindo a radiação solar com Arduino
  9. Plataforma de painel solar de rastreamento de luz servo-controlada
  10. Painel solar:questões de qualidade e pontos-chave de controle