Académique Documents
Professionnel Documents
Culture Documents
20
Em cada atividade grave o código do programa Arduino e faça o esquemas das ligações
com o Fritzing.
Atividade 01 Sensor LDR para ligar luz
Atividade 02 LDR + Laser + buzzer como alarme
Atividade 03 RGB Led
Ativicade 04 Infravermelhos + buzzer como alarme
Atividade 05 Sensor de temperatura LM35
Ativicade 06 Sensor ultrasons para determinar distâncias de objetos
Ativicade 07 Sensor presença para ligar luz / alarme
Ativicade 08 Piezzo como sensor de vibrações
Ativicade 09 Contrução de Arduino Uno em Breadboard com ATmega328PPU
Ativicade 10 Utilização do arduino da atividade 07 com FTDI
Ativicade 11 Teste de vários sensores (KIT)
Ativicade 11.01 Sensor temperatura e humidade (DTH11)
Ativicade 11.02 TILT
Ativicade 12.02 ….
Em cada atividade grave o código do programa Arduino e faça o esquemas das
ligações com o Fritzing.
Atividade 01 - Sensor LDR para ligar luz
LDR (Light Dependent Resistor) Resistência dependente de luz.
O LDR possui a interessante característica de ser um componente eletrônico cuja
resistência elétrica diminui quando sobre ele incide energia luminosa.
Isto possibilita a utilização deste componente para desenvolver um sensor que é ativado (ou
desativado) quando sobre ele incidir energia luminosa.
Como vai estar ligado a uma porta analógica, o Arduino irá obter valores entre 0 e 1023.
Esquema de ligação
Pretendese:
1. Acender o led quando o valor for inferior a 400
2. Altere o esquema da atividade 05 (da 1ª sessão) de modo a acender um led por
cada múltiplo de 100. Isto é: se o valor lido do LDR for superior a 700 deverá ter
107=3 leds acessos.
3. Troque o LDR pelo potenciómetro e adapte o problema anterior.
Atividade 02 - LDR + Laser + buzzer como alarme
Pretendese ligar a luz laser e direcionar a luz para o LDR.
Quando a luz do laser incide no LDR liga uma luz verde.
Faz uma pausa de um segundo.
Se o feixe de luz for interrompido deve:
tocar um som no buzzer
ligar uma luz vermelha intermitente (liga meio segundo, desliga meio segundo)
durante 5 segundos, usando o ciclo FOR.
terminado o ciclo desligar o buzzer
Podem incorporar este código para fazer tocar o buzzer.
#define tempo 10
int frequencia = 0;
int pinoBuzzer = 10;
void setup() {
pinMode(pinoBuzzer ,OUTPUT); //Pino do buzzer
}
void loop() {
for (frequencia = 150; frequencia < 1800; frequencia += 1) {
tone(pinoBuzzer lante, frequencia, tempo);
delay(1);
}
for (frequencia = 1800; frequencia > 150; frequencia = 1) {
tone(pinoBuzzer , frequencia, tempo);
delay(1);
}
}
Atividade 03 - RGB Led
Podemos ter dois tidos de leds RGB.
O mais comum é aquele que partilha o pino negativo.
Prepare a seguinte esquema.
Os pinos dos leds devem ser ligados às portas 3, 5 e 6 do arduino.
Estas são portas PWM, ou seja, embora sejam portas digitais podemos utilizálas como se
fossem portas analógicas (analogRead e analogWrite), mas os valores máximos lidos/a
escrever variam entre 0 e 255..
Pretendemos:
1. CICLO de ligar leds
Ligar o led vermelho, depois o verde e finalmente o azul. Pausa de 3 segundos.
Desligar o led verde. Pausa de 3 segundos.
Desligar o led vermelho e ligar o led verde. Pausa de 3 segundos.
Desligar todos os leds. Pausa de 3 segundos.
Utilizar a instrução analogWrite, com a utilização de ciclos, para ir testando o “Ciclo
de ligar leds” variando o valor da variável entre 0 e 250 com intervalos de 10 em 10.
2. Alterar a atividade para utilizar o potenciómetro para alterar o valor da intensidade
do led e um botão para ir alterando a cor do led que estamos a alterar.
Temperatura inferior a 20 ºC acende a luz amarela.
Temperatura entre 20 ºC e 25 ºC acende luz verde.
Temperatura acima de 25 ºC acende luz vermelha.
Atividade 06 - Sensor ultra-sons para determinar distâncias de
objetos
O Sensor Ultrasónico HCSR04 funciona como um detector de objetos e permite medir
distâncias mínimas de 2 centímetros podendo chegar a distancias máximas de até 5 metros
com uma precisão de 3 milímetros .
Estes sensores emitem um sinal ultrasónico que reflete em um objeto e retorna ao sensor
(eco). O sinal de retorno é captado, permitindo deduzir a distância do objeto ao sensor
tomando o tempo de trânsito do sinal.
Pinagem.:
● VCC : Alimentação 5v
● TRIG : Pino de Gatilho
● ECHO : Pino de Eco
● GND : Terra
/*
HCSR04 Ping distance sensor:
VCC to arduino 5v
GND to arduino GND
Echo to Arduino pin 7
Trig to Arduino pin 8 */
#define echoPin 7 // Echo Pin
#define trigPin 8 // Trigger Pin
#define LEDPin 13 // Onboard LED
int maximumRange = 200; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration, distance; // Duration used to calculate distance
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
}
void loop() {
/* The following trigPin/echoPin cycle is used to determine the
distance of the nearest object by bouncing soundwaves off of it. */
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//Calculate the distance (in cm) based on the speed of sound.
distance = duration/58.2;
if (distance >= maximumRange || distance <= minimumRange){
/* Send a negative number to computer and Turn LED ON
to indicate "out of range" */
Serial.println("1");
digitalWrite(LEDPin, HIGH);
}
else {
/* Send the distance to the computer using Serial protocol, and
turn LED OFF to indicate successful reading. */
Serial.println(distance);
digitalWrite(LEDPin, LOW);
}
//Delay 50ms before next reading.
delay(50);
}
No Arduino, temos o
módulo PIR DYPME003 , que une numa mesma estrutura o sensor PIR e
também os circuitos necessários para ajuste e controle do sinal de saída.
O módulo contém o sensor PIR propriamente dito, composto internamente por duas faixas com material
sensível ao infravermelho. Na parte externa, uma espécie de capa/tampa que na verdade é uma
lente
fresnel
.
Quando há variação na detecção do sinal infravermelho entre essas duas faixas de material sensível, a
saída é acionada por um determinado tempo. A lente fresnel tem a função de, vamos dizer assim,
"ampliar" o campo de visão do sensor, condensando a luz em um único ponto.
Felizmente existem figuras para traduzir toda essa teoria e mostrar de uma forma mais clara como isso
funciona.
Abaixo, o sensor PIR, a lente fresnel e as duas faixas de detecção, acionadas quando alguém passa
em frente ao sensor :
Nessa outra figura, uma representação de como funciona uma lente fresnel :
Resumidamente, é assim que a coisa funciona. Uma explicação muito melhor e mais detalhada você
encontra no do módulo,
datasheet nesse link
.
Vamos então para a parte boa, analisando o módulo e testandoo com um
Arduino Uno
. :)
No lado esquerdo da imagem, o módulo sem a lente, com o sensor exposto. No lado direito, a parte
inferior do módulo, com os 2 pinos de alimentação (4.5 à 20 volts ) e sinal, os potenciômetros para
ajuste da sensibilidade e tempo de acionamento da saída, e também o jumper que controla o modo de
operação do trigger (gatilho) :
Apenas preste atenção quando for ligar o seu módulo, pois alguns apresentam os pinos Vcc e GND
invertidos. Na dúvida, consulte o datasheet do seu módulo ou verifique as indicações na placa.
Nesse módulo, praticamente não há necessidade de programação no Arduino, já que a saída é
colocada em HIGH (ALTO), quando um objeto for detectado, e permanece assim pelo tempo que
configurarmos no potenciômetro. Basta então definirmos o que será feito com as saídas do Arduino :
No loop do programa, o valor lido da porta 3 (ligada ao pino de sinal do sensor), é constantemente
verificado, e caso ocorra movimento em frente ao sensor, o led vermelho ligado à porta 5 é acionado.
Caso contrário, é o
led azul
ligado à porta 6 que permanece acionado.
Analise o seguinte programa, crie o esquema de ligação e teste o funcionamento.
// Programa : Sensor de presenca com modulo PIR
// Autor : Arduino e Cia
int pinoledverm = 5;
//Pino ligado ao led vermelho
int pinoledazul = 6;
//Pino ligado ao led azul
int pinopir = 3;
//Pino ligado ao sensor PIR
int acionamento; //Variavel para guardar valor do sensor
void setup()
{
pinMode(pinoledverm, OUTPUT); //Define pino como saida
pinMode(pinoledazul, OUTPUT); //Define pino como saida
pinMode(pinopir, INPUT); //Define pino sensor como entrada
}
void loop()
{
acionamento = digitalRead(pinopir); //Le o valor do sensor PIR
if (acionamento == LOW) //Sem movimento, mantem led azul ligado
{
digitalWrite(pinoledverm, LOW);
digitalWrite(pinoledazul, HIGH);
}
else
//Caso seja detectado um movimento, aciona o led vermelho
{
digitalWrite(pinoledverm, HIGH);
digitalWrite(pinoledazul, LOW);
}
}
*
* PIR sensor tester
*/
int ledPin = 13; // choose the pin for the LED
int inputPin = 2; // choose the input pin (for PIR sensor)
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status
void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare sensor as input
Serial.begin(9600);
}
void loop(){
val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, HIGH); // turn LED ON
if (pirState == LOW) {
// we have just turned on
Serial.println("Motion detected!");
// We only want to print on the output change, not state
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // turn LED OFF
if (pirState == HIGH){
// we have just turned of
Serial.println("Motion ended!");
// We only want to print on the output change, not state
pirState = LOW;
}
}
}
Ativicade 08 - Piezzo como sensor de vibrações
Utilize o piezzo buzzer como sensor de vibração e a partir do valor 50 deve ativar um led.
Crie o esquema da ligação no fritzing
Alimentação: 3,0 a 5,0 VDC (5,5 Vdc máximo)
– Corrente: 200uA a 500mA, em stand by de 100uA a 150 uA
– Faixa de medição de umidade: 20 a 90% UR
– Faixa de medição de temperatura: 0º a 50ºC
– Precisão de umidade de medição: ± 5,0% UR
– Precisão de medição de temperatura: ± 2.0 ºC
– Tempo de resposta: < 5s
– Dimensões: 23mm x 12mm x 5mm (incluindo terminais)
Formato dos dados: 8bit integral RH data + 8bit decimal RH data + 8bit integral T data + 8bit
decimal T data + 8bit check sum = 40 bits
Esquema de ligação
Fazer download da biblioteca: DHTsensorlibrarymaster.zip
Instalar a biblioteca através da IDE do arduino:
Menu Rascunho → Include Library → Add .ZIP Library
Pesquise o ficheiro ZIP
Depois abra o exemplo em: Ficheiro → Exemplos → DTH Sensor Library → DTHTester
Compile e envie para o Arduino.
Abra a janela de “Monitor Série”.
Anote a temperatura e humidade registada pelo sensor.
Ativicade 11.02 - ….
Teste os restantes sensores e para cada um crie uma subatividade.