Projeto 3 ensina a fazer uma luz pulsante usando um LED vermelho, resistor e Arduino. Projeto 4 controla a intensidade de um LED usando um potenciômetro. Projeto 5 usa PWM para variar a intensidade de um LED com um potenciômetro.
4. Projeto 3
Código
int LED = 9;
float seno;
int intensidade;
void setup()
{
pinMode(LED, OUTPUT);
}
void loop()
{
for (int i = 0; i < 180; i++){
seno = sin (i*(3.1416 / 180));
intensidade = int (seno * 255);
analogWrite (LED, intensidade);
delay (25);
}
}
5. Projeto 4 – Controle de LED
Material
Arduino
1 LED vermelho
1 resistor de 180 ohms
1 potenciômetro de 10k ohms
Protoboard
Jumpers
7. Projeto 4
Código
int POT = A1;
int LED = 13;
int valor = 0;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(POT, INPUT);
}
void loop()
{
valor = analogRead(POT);
digitalWrite(LED,HIGH);
delay (valor);
digitalWrite(LED,LOW);
delay (valor);
}
8. Projeto 5 - PWM
Material
Arduino
1 LED vermelho
1 resistor de 220 ohms
1 potenciômetro de 10k ohms
Protoboard
Jumpers
10. Projeto 5
Código
int LED = 3;
int POTE = A0;
int valor = 0;
void setup()
{
pinMode (LED, OUTPUT);
pinMode (POTE, INPUT);
}
void loop()
{
valor = analogRead(POTE);
analogWrite (LED, valor/4);
delay(1000);
}
11. Console de
Comunicação
Este experimento visa permitir que se verifique que a
instalação o ambiente de programação do Arduino
está funcionando corretamente no seu computador.
Visa também fazer com que você aprenda como
usar as funções:
Serial.read() : permite que você use o teclado do PC
para mandar entradas(inputs) para o Arduino
Serial.write() : permite que o Arduino “escreva” na tela
do PC
12. Serial
Código
int LED = 3;
int POTE = A0;
int valor = 0;
void setup()
{
pinMode (LED, OUTPUT);
pinMode (POTE, INPUT);
Serial.begin(9600);
}
void loop()
{
valor = analogRead(POTE);
analogWrite (LED, valor/4);
Serial.println (valor);
delay(1000);
}
13. Projeto 6 - LED Controle de
Luminosidade por botão
Material
Arduino
1 LED vermelho
1 resistor de 180 ohm
1 Botão push-button
1 resistor de 10k ohm
Protoboard
Jumper
15. Projeto 6
Código
int LED = 9; // Pino do LED
int BOTAO = 7; // Pino do Botão
int valor = LOW;
int valorAnterior = LOW;
int estado =0; // 0 = apagado, 1 = aceso
int brilho = 128;
unsigned long inicio;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(BOTAO, INPUT);
}
void loop()
{
valor = digitalRead(BOTAO);
if ((valor == HIGH) && (valorAnterior == LOW)){
estado = 1 - estado;
inicio = millis(); // Tempo Arduino iniciado (ms)
delay (10);
}
if ((valor == HIGH) && (valorAnterior == HIGH)){
// mais de meio segundo 500ms
if (estado == 1 && (millis()-inicio)>500){
brilho++;
delay (10);
if (brilho>255) brilho = 0;
}
}
valorAnterior = valor;
if (estado == 1)
analogWrite(LED, brilho); // Define o Brilho
else
analogWrite(LED,0); // Apaga o LED
}
32. Projeto 10
Código
int LED = 13;
int entrada = 0;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
Serial.println("Digite 1 para acender o LED ou 0 para apagar:");
}
void loop()
{
if (Serial.available() > 0){
entrada = Serial.read();
Serial.print ("Recebido: ");
Serial.println (entrada, DEC);
if (entrada=='0')
digitalWrite (LED, LOW);
else if (entrada=='1')
digitalWrite (LED, HIGH);
else
Serial.println ("Por favor, digite apenas 0 ou 1!");
}
}
33. Projeto 10b
Código
int LED = 13;
int entrada = 0;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
Serial.println("Digite 1 para acender o LED ou 0 para apagar:");
}
void loop()
{
if (Serial.available() > 0){
entrada = Serial.read();
Serial.print ("Recebido: ");
Serial.println (entrada, DEC);
Serial.print ("Em caractere:");
Serial.print ((char) entrada);
if (entrada=='0')
digitalWrite (LED, LOW);
else if (entrada=='1')
digitalWrite (LED, HIGH);
else
Serial.println ("Por favor, digite apenas 0 ou 1!");
}
}
34. Projeto 11 - Bip simples utilizando
um Buzzer
Material
Arduino
1 Buzzer
1 resistor de 220 ohms
Protoboard
Jumpers
36. Projeto 11
Código
// Pino do buzzer
int BUZZER = 8;
void setup()
{
pinMode(BUZZER, OUTPUT);
}
void loop()
{
// pino e a frequência
tone (BUZZER, 1200);
delay (500);
// Para o toque
noTone(BUZZER);
delay (500);
// pino, frequência e duração
tone (BUZZER, 1200, 500);
delay(500);
}
37. Projeto 12 – “Música”
Material
Arduino
1 Buzzer
1 resistor de 220 ohms
Protoboard
Jumpers
39. Projeto 12
Código
// Pino do buzzer
int BUZZER = 8;
int numNotas = 10;
// notas C C# D D# E F F# G G# A
int notas[] = {261, 277, 294, 311, 330,
349, 370, 392, 415, 440};
void setup()
{
pinMode(BUZZER, OUTPUT);
}
void loop()
{
for (int i = 0; i < numNotas; i++){
tone (BUZZER, notas[i]);
delay (500);
}
noTone (BUZZER);
delay (1000);
}
40. Sensor de
Temperatura
DHT11
Veja que no módulo já vem
um resistor de 10k ohms que
facilita a montagem
Mede entre -20ºC e 60ºC
aproximadamente
41. DHT11
Funciona como um botão,
ou seja, terá um resistor de
10K ohms para a nossa
ligação
58. Projeto 16b
Código
// Leitura HC-SR04
const uint8_t trig_pin = 10;
const uint8_t echo_pin = 9;
uint32_t print_timer;
void setup() {
Serial.begin(9600); // Habilita Comunicação Serial a uma taxa de 9600 bauds.
// Configuração do estado inicial dos pinos Trig e Echo.
pinMode(trig_pin, OUTPUT);
pinMode(echo_pin, INPUT);
digitalWrite(trig_pin, LOW);
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
}
void loop() {
// Espera 0,5s (500ms) entre medições.
if (millis() - print_timer > 500) {
print_timer = millis();
// Pulso de 5V por pelo menos 10us para iniciar medição.
digitalWrite(trig_pin, HIGH);
delayMicroseconds(11);
digitalWrite(trig_pin, LOW);
/* Mede quanto tempo o pino de echo ficou no estado alto, ou seja,
o tempo de propagação da onda. */
uint32_t pulse_time = pulseIn(echo_pin, HIGH);
/* A distância entre o sensor ultrassom e o objeto será proporcional a velocidade
do som no meio e a metade do tempo de propagação. Para o ar na
temperatura ambiente Vsom = 0,0343 cm/us. */
double distance = 0.0172312 * pulse_time;
// Imprimimos o valor na porta serial;
Serial.print(distance);
Serial.println(" cm");
if (distance>200) {digitalWrite(6, LOW);} else {digitalWrite(6, HIGH);}
if (distance>160) {digitalWrite(5, LOW);} else {digitalWrite(5, HIGH);}
if (distance>120) {digitalWrite(4, LOW);} else {digitalWrite(4, HIGH);}
if (distance>80) {digitalWrite(3, LOW);} else {digitalWrite(3, HIGH);}
if (distance>40) {digitalWrite(2, LOW);} else {digitalWrite(2, HIGH);}
}
}
59. Projeto 17 – Sensor de
Luminosidade
Material
Arduino
1 LED vermelho
1 Resistor de 220 ohms
1 Fotorresistor (LDR)
1 Resistor de 10k ohms
61. Projeto 17
Código
int LED = 13;
int LDR = A0;
int entrada = 0; // Valor do LDR
void setup()
{
pinMode(LED, OUTPUT);
pinMode(LDR, INPUT);
}
void loop()
{
entrada = analogRead(LDR);
delay(500);
if (entrada < 100)
digitalWrite(LED, HIGH);
else
digitalWrite(LED, LOW);
delay(100);
}
62. Projeto 18 – Acionando um servo
motor
Material
Arduino
1 Micro servo
1 potenciômetro de 10K ohms
Protoboard
Jumpers
63. Acionamento
Servo Motor
Servos de aeromodelismo
são controlados por um sinal
PWM (Pulse Width
Modulation) de período
20ms e largura entre 1ms a
2ms.
A largura define a posição
do servo, entre 0 grau(1ms) e
seu valor máximo (2ms), em
geral, 120 graus
72. Projeto 20 – Display de 7
Segmentos
Material
Arduino
Display de sete segmentos com catodo comum
1 Resistor de 220 ohms
Protoboard
Jumpers
77. Projeto 21
Código
const int A = 4; // Primeiramente setamos os 4 pinos do CI 4511
const int B = 5;
const int C = 6;
const int D = 7;
void setup(){
pinMode(A, OUTPUT); // seta todos as portas que estão os leds do display como saída
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
}
void loop(){
digitalWrite(A, 0); //acende os leds que representam o número 0
digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 1
digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 2
digitalWrite(B, 1); digitalWrite(C, 0); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 3
digitalWrite(B, 1); digitalWrite(C, 0); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 4
digitalWrite(B, 0); digitalWrite(C, 1); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 5
digitalWrite(B, 0); digitalWrite(C, 1); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 6
digitalWrite(B, 1); digitalWrite(C, 1); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 7
digitalWrite(B, 1); digitalWrite(C, 1); digitalWrite(D, 0);
delay(1000);
digitalWrite(A, 0); //acende os leds que representam o número 8
digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 1);
delay(1000);
digitalWrite(A, 1); //acende os leds que representam o número 9
digitalWrite(B, 0); digitalWrite(C, 0); digitalWrite(D, 1);
delay(1000);
digitalWrite(A, 1); // limpa a tela (todos segmentos desligados
digitalWrite(B, 1); digitalWrite(C, 1); digitalWrite(D, 1);
delay(1000);