Arduino Exercicios Resolvidos
Arduino Exercicios Resolvidos
Arduino Exercicios Resolvidos
Arquitetura de Computadores
Arduino
Desafio
Material utilizado
Porta digital 10
Protoboard
Resistor
Led Verde
Utilize a porta 10 e o
Protoborad para ligar o
Programando
int ledPin = 10;
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
Desafio II
Construa o simulador de um semforo utilizando VBB, com 3 leds
Semforo
Cdigo
int ledDelay = 5000;
int redPin = 10;
int yellowPin = 9;
int greenPin = 8;
void setup () {
pinMode (redPin , OUTPUT );
pinMode ( yellowPin , OUTPUT );
pinMode ( greenPin , OUTPUT );
void loop () {
digitalWrite ( redPin , HIGH );
delay ( ledDelay );
digitalWrite ( yellowPin , HIGH );
delay (2000) ;
Cdigo
digitalWrite ( greenPin , HIGH );
delay ( ledDelay );
digitalWrite ( yellowPin , HIGH );
digitalWrite ( greenPin , LOW);
delay (2000) ;
digitalWrite ( yellowPin , LOW);
Botes
O interruptor momentneo um componente que conecta dois
2 do Arduino
Botes
Quando o interruptor est livre (no pressionado), no h conexo
Boto - Conexes
Boto - Conexes
Boto Conexes
Boto - Cdigo
void setup() {
pinMode(ledPin, OUTPUT); // declara-se o LED como sada
pinMode(inPin, INPUT); // declara-se o interruptor como entrada
}
void loop(){
val = digitalRead(inPin); // ler o valor de entrada
if (val == HIGH) {
// verificar se a entrada HIGH (interruptor livre)
digitalWrite(ledPin, LOW); // desligar LED
} else {
digitalWrite(ledPin, HIGH); // ligar LED
}
}
Potnciometro
Cdigo
int potPin = 2; // selecione o pino de entrada ao potencimetro
int ledPin = 13; // selecione o pino ao LED
int val = 0;
// varivel a guardar o valor proveniente do sensor
void setup() {
void loop() {
val = analogRead(potPin); // ler o valor do potencimetro
digitalWrite(ledPin, HIGH); // ligar o ledPin
delay(val);
// pausar o programa por algum tempo
digitalWrite(ledPin, LOW); // desligar o ledPin
delay(val);
// pausar o programa por algum tempo
}
2, 3, 4, 5, 6, 7
Matriz de Led
int timer = 100;
Matriz de Led
void loop()
{
int i;
for (i = 0; i < num_pins; i++) { // varrer cada pino...
digitalWrite(pins[i], HIGH); // ligando-o,
delay(timer);
// pausando-o,
digitalWrite(pins[i], LOW); // e desligando-o.
}
}
digitalWrite(pins[i], HIGH);
delay(timer);
digitalWrite(pins[i], LOW);
}
Cdigo
#include <LiquidCrystal.h>
// Define a utilizao da biblioteca para controle de telas LCDs
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
Cdigo
void loop() {
lcd.clear();
// Limpa o display do LCD
lcd.print( Turma de : "); // Imprime a string no display do LCD
delay(2000);
// Espera 2 segundos antes de imprimir a prxima
string no LCD
lcd.clear();
lcd.print( na aula de ");
lcd.setCursor(0,1);
// Posiciona o cursor na coluna 0 linha 1 do
LCD
lcd.print( Arduino ");
delay(2000);
Prof. Aparecido Vilela Junior
Cdigo - Continuao
lcd.clear();
lcd.print("Disciplina");
delay(2000);
lcd.clear();
lcd.print("Arquitetura");
delay(1000);
for (int i = 0; i < 16; i++) { // Rolando o display para a esquerda 16 vezes
lcd.scrollDisplayLeft();
delay(600);
}
delay(3000);
}
Prof. Aparecido Vilela Junior
Monitor Serial
O monitor serial utilizado para comunicao entre o Arduino e o
computador (PC).
O monitor serial pode ser aberto no menu tools opo serial
Monitor Serial
Algumas funes bastante usadas:
begin(): inicializa a comunicao entre o Arduino e um
computador;
read(): recebe caracteres inseridos no monitor serial;
print(): imprime caracteres no monitor serial;
println(): imprime caracteres no monitor serial, mas causa uma
quebra de linha no final;
available(): retorna o nmero de bytes disponveis no buffer de
leitura do monitor serial.
Monitor Serial
LCD - Portas
Note no detalhe das imagens abaixo, que a placa possui furos que permitem a
soldagem de uma barra de pinos ou conectores, com isso podemos usar os pinos que
sobraram : 0, 1, 2, 3, 11, 12, 13 (digitais), e A1, A2, A3, A4, A5 (analgicos),
alm dos pinos de energia (5v, 3.3v, GND). O pino 10 tambm utilizado pela placa
para uma funo especfica, no caso o backlight, e no deve ser utilizado nos
programas.
Display LCD
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
// ou esse conjunto de portas
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
}
Cdigo
void loop()
{
lcd.clear();
lcd.print(Aula de Arduino");
lcd.setCursor(0,1);
lcd.print( Turma de : "); // Imprime a string no display do LCD
Cdigo - Continuao
lcd.clear();
lcd.print("Disciplina");
delay(2000);
lcd.clear();
lcd.print("Arquitetura");
delay(1000);
for (int i = 0; i < 16; i++) { // Rolando o display para a esquerda 16 vezes
lcd.scrollDisplayLeft();
delay(600);
}
delay(3000);
}
Prof. Aparecido Vilela Junior
Sensor de Luz
LDR (Light Dependent Resistor, ou Resistor Dependente de
Luz).
Sensor de Luz
Ao iluminarmos um LDR, a sua resistncia apresenta valores
muito baixos.
Ao cortarmos a iluminao, a resistncia sobe.
Conhecendo os princpios bsicos do componente, podemos
montar um circuito onde, com incidncia de luz, o led se apaga, e
ao cobrirmos o LDR, o led se acende :
Sensor de Luz
O programa para este circuito l o valor da porta analgica (que
Sensor de Luz
Cdigo
int portaLed = 10; //Porta a ser utilizada para ligar o led
int portaLDR = A5; //Porta analgica utilizada pelo LDR
void setup()
{
sada
}
Cdigo
void loop()
{
digitalWrite(portaLed, HIGH);
}
else //Caso contrrio, apaga o led
{
digitalWrite(portaLed, LOW);
}
Prof. Aparecido Vilela Junior
Prof.Aparecido
} Vilela Junior
Cdigo Morse
100ms.
Os traos devem ter durao de 400ms ligados e intervalos de 100ms
Os intervalos entre as letras devem ser de 100ms.
Os intervalos entre as mensagens devem ser de 1 segundo.
Cdigo
void loop () {
// 3 `` pontos '' = S
for (int x = 0; x < 3; x++) {
digitalWrite (ledPin , HIGH ); // LED ligado
delay (150) ; // intervalo de 150 ms
digitalWrite (ledPin , LOW); // LED desligado
delay (100) ; // intervalo de 100 ms
}
Cdigo
Cdigo
digitalWrite (ledPin , LOW); // LED desligado
delay (100) ; // intervalo de 100 ms
}
// intervalo de 5 segundos para transmitir o sinal
novamente
delay (5000) ;