O trabalho que a seguir se apresenta foi executado pela aluna Filipa Formoso, da turma 10 CT2, durante o ano Escolar 2017/18. Este projeto foi publicado no site Arduino.cc, na secção ProjectHub.
Material Necessário
1 Arduino UNO & Genuino UNO
1 Arduino Proto Shield
Jumper wires
2 Foto resistencias (LDR)
2 Resistencias de 10 kOhms
1 Placa de circuito impresso
1 Servomotor
1 Placa de contraplacado furado
1 Estrutura para o pé (tubo de alumínio e arame fino)
4 Fios condutores (4 cores)
1 Alimentador 230V AC/12V DC
1 Vaso
3 Folhas de esponja EVA (verde, amarelo, castanho)
1 Fita adesiva castanha
Esquema

Descrição da construção
Circuito-Arduíno
Para começar liga-se a placa shield ao arduino, já com o programa. À placa shield liga-se o servo motor e as duas resistências LDR, através de fios condutores e jumpers.
Placa de circuito impresso
Na placa de circuito impresso estão ligados os 2 LDR’s, 2 resistências de 10K Ohms, um condutor positivo (5 V) e um negativo (GND) e 2 condutores de dados entre cada um dos LDR´s e as resistências.
Montagem
O Arduíno e a placa Shield ficam dentro do vaso, que vai ter de ser furado nas zonas da ligação USB e de alimentação do Arduíno.
O contraplacado furado deve ser cortado à medida do vaso e, no centro fura-se o contraplaco de forma a que o servo motor fique seguro e, se necessário, para fortalecer, coloca-se cola quente.
O tubo de alumínio fica encaixado no topo do servo motor, com a ajuda de cola quente.
No topo do tubo fica a placa de circuito impresso. Para que a placa de circuito não caia, faz-se um corte ligeiro para encaixe da placa.
Por fim, decora-se com as folhas de EVA, para que se pareça com um girassol e reveste-se o tubo de alumínio com fita adesiva castanha.

Programa
// *********************************************************** // ************ Clube robótica ESGC 2017/2018 **************** // ************ Filipa Formoso **************** // *********************************************************** #include "Servo.h" Servo myservo; int pos = 0; // declaração da posição do servo motor int inputPhotoLeft = 1; // declara-se a porta de entrada da leitura do LDR da esquerda int inputPhotoRight = 0; // declara-se a porta de entrada da leitura do LDR da direita int Left = 0; // valor inicial do LDR da esquerda int Right = 0; // valor inicial do LDR da direita void setup() { Serial.begin(9600); // inicialização da comunicação serial myservo.attach(9); // definição do pin do servo motor } void loop() { Left = analogRead(inputPhotoLeft); // leitura do nível de iluminação do LDR da esquerda Right = analogRead(inputPhotoRight); // leitura do nível de iluminação do LDR da direita Serial.println(Left); // apresentação do valor de iluminação da esquerda Serial.println(Right); // apresentação do valor de iluminação da direita // orientação do girassol em função da luz if (Left > (Right +20)) { if (pos < 179) pos++; myservo.write(pos); } if (Right > (Left +20)) { if (pos > 1) pos -= 1; myservo.write(pos); } delay(10); // espera de 10ms para uma nova leitura }
Link ProjectHub
https://create.arduino.cc/projecthub/robot-rio/projeto-girassol-273631/embed?use_route=project

