Arduino para iniciantes

Nesse espaço vamos compartilhar algumas dicas sobre aplicação do Arduino. Durante o estudo dos laboratórios remotos em refrigeração foi necessário desenvolver um protótipo para controlar uma lâmpada pela internet. Para atingir esse objetivo realizamos uma pesquisa sobre diversos sites relacionados com o assunto, que compartilhamos a seguir:

“Arduino pode ser denominado como um kit de desenvolvimento de prototipagem eletrônica de código fonte aberto que se baseia em software e hardware flexíveis e fáceis de usar. É destinado à criação de objetos ou ambientes interativos. Seu intuito é ser uma tecnologia de baixo custo, que facilite a aprendizagem e o desenvolvimento de projetos e que possa ser estudada e modificada quando necessário. O projeto Arduino possui um site (www.arduino.cc) com manuais, bibliotecas, exemplos de códigos e conta com uma comunidade com diversas iniciativas em prática”.

 

Fonte: Dyego Cantu

Os exemplos foram realizados a partir do Livro “30 Projetos com Arduino – Simon Monk“e a partir do site da FILIPELOP

Também é possível programar o Arduíno usando o ambiente de programação S4A (Scratch for Arduino), permite realizar a programação do Arduino utilizando as mesmas estruturas da linguagem Scratch, o que facilita muito o trabalho de quem está iniciando no mundo da programação de computadores.

S4A.png

Fonte: Evandro Cantu – IFPR  – Curso de Arduino

Site oficial da Arduino

É importante saber como ler um resistor:

Exemplo 1 – Blink  – Controla tempo de um LED pisca-pisca.

Componentes: Led, resistor, jumpers, arduino. Lembrar que a perna menor do Led é o polo negativo, que deve ser ligada em série com o resistor. O esquema de ligação é mostrado na Figura.

Lembrete para iniciantes – esquema de ligação interna de uma protoboard

Copiar os comandos e colar no programa do Arduino (baixado no computador)

//Autor : FILIPEFLOP

void setup()
{
//Define a porta do led como saida
pinMode(13, OUTPUT);
}

void loop()
{
//Acende o led
digitalWrite(13, HIGH);

//Aguarda o intervalo especificado
delay(1000);

//Apaga o led
digitalWrite(13, LOW);

//Aguarda o intervalo especificado
delay(1000);
}

Para não ficar dúvidas tem-se diversos vídeos disponíveis no YOUTUBE

Exemplo de montagem – Piscar LED 

Exemplo 2 – Sinal de trânsito 

// EXP-02: PROGRAMA 2.1 SEMAFORO_3LEDS
void setup()
// ESTA BARRA DUPLA SIGNIFICA QUE OS CARACTERES A SEGUIR SÃO COMENTÁRIOS E O PROGRAMA
//NÃO OS EXECUTA.
{
pinMode(8,OUTPUT); // DEFINE O PINO 13 COMO OUTPUT, OU SEJA, VARIÁVEL DE SAÍDA.
pinMode(9,OUTPUT); // IDEM PARA O PINO 12.
pinMode(10,OUTPUT); // IDEM PARA O PINO 11.
}
void loop() // COMEÇA AQUI A REPETIÇÃO DOS COMANDOS (ENTRE OS COLCHETES).
{
digitalWrite(8,HIGH); // COLOCA O PINO 13 EM NÍVEL “ALTO”, OU SEJA, 5 V; O LED VERM. ACENDE.
delay(100); // TEMPO DE ESPERA DE 4 SEGUNDOS.
digitalWrite(8,LOW); // COLOCA O PINO 13 EM NÍVEL “BAIXO”, OU SEJA, 0 V; O LED VERM. APAGA.

digitalWrite(9,HIGH); // COLOCA O PINO 11 EM NÍVEL “ALTO”, OU SEJA, 5 V; O LED VERDE ACENDE.
delay(200); // TEMPO DE ESPERA DE 4 SEGUNDOS.
digitalWrite(9,LOW); // COLOCA O PINO 11 EM NÍVEL “BAIXO”, OU SEJA, 0 V; O LED VERDE APAGA.

digitalWrite(10,HIGH); // COLOCA O PINO 12 EM NÍVEL “ALTO”, OU SEJA, 5 V; O LED AMAR. ACENDE.
delay(50); // TEMPO DE ESPERA DE 2 SEGUNDOS.
digitalWrite(10,LOW); // COLOCA O PINO 12 EM NÍVEL “BAIXO”, OU SEJA, 0 V; O LED AMAR. APAGA.
}

http://www.uel.br/pessoal/ernesto/arduino/02_pisca_com_3_LEDs.pdf

Vídeo complementar – semáforo 

 

Exemplo 3- Ajustando o brilho de um LED – Fonte: FILIPEFLOP 

// Projeto Brilho LED PWM
int ledPin = 11;
float sinVal;
int ledVal;
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
for (int x=0; x<360; x++)
{
// converte graus para radianos e então obtém o valor do seno
sinVal = (sin(x*(3.1412/360)));
ledVal = int(sinVal*255);
analogWrite(LED_BUILTIN, ledVal);
delay(25);
}
}

Exemplo 4- Ligando lâmpadas a distância pela internet

Exemplo 5- Lâmpada estroboscópica com brinquedo de Lego

Exemplo 6- Experimento prático com Arduino

 

Exemplo 7- Montando um display

Exemplo 7- Controle com palmas

https://drive.google.com/file/d/0B91L9po09u35eUc0Z0ZHVmFSclk/view

#define pinSom 7
#define pinRele1 2
#define pinRele2 3
#define tempoMaximoDeUmaPalma 150 //milisegundos
#define tempoMaximoEntrePalmas 500 //milisegundos

int contaPalmas = 0;
long tempoEspera = 0;
long tempoEsperaEntrePalmas = 0;

void executarAcao();

void setup() {
pinMode(pinSom, INPUT);
pinMode(pinRele1, OUTPUT);
pinMode(pinRele2, OUTPUT);
}

void loop() {
//verifica o estado do sensor de som (ele fica normalmente com a porta ligada. Quando ouver uma palma, ele desliga momentaneamente a porta)
int sensorSom = digitalRead(pinSom);

//se o sensor detectou palmas
if (sensorSom == LOW) {

//espera um tempo para nao detectar a mesma palma mais de uma vez
if (tempoEspera == 0) {
tempoEspera = tempoEsperaEntrePalmas = millis();
contaPalmas++;
} else if ((millis() – tempoEspera) >= tempoMaximoDeUmaPalma) {
tempoEspera = 0;
}
}

//caso exceda o tempo maximo entre palmas, zera o contador de palmas
if ( (contaPalmas != 0) && ((millis() – tempoEsperaEntrePalmas) > 500) ) {
executarAcao();
contaPalmas = 0;
tempoEsperaEntrePalmas = millis();
}
}

void executarAcao()
{
switch (contaPalmas) {
case 2:
digitalWrite(pinRele1, !digitalRead(pinRele1));
break;
case 3:
digitalWrite(pinRele2, !digitalRead(pinRele2));
break;
case 4:
digitalWrite(pinRele2, !digitalRead(pinRele2));
break;
}
}

Saiba mais:

1- Automação Predial com Arduino

2- Automação residencial com Arduino

3- Automação residencial de baixo custo

4- Livro básico sobre Arduino 

5- Mini curso de Arduino

6- Arduino Básico apostila

7- Oficina de robótica

http://oficinaderobotica.ufsc.br/files/2013/04/MaterialOficinaRobotica2014v21.pdf

http://cursodearduino.com.br/apostila/apostila-rev4.pdf

http://paginapessoal.utfpr.edu.br/gustavobborba/material/files/EL66J_Slides_arduino.pdf

http://www.lbd.dcc.ufmg.br/colecoes/wei/2015/012.pdf

http://www.di.ufpb.br/clauirton/IEC/SlidesArduino.pdf

http://www.fatece.edu.br/arquivos/arquivos%20revistas/perspectiva/volume3/4.pdf

http://www.repositorio.ufrn.br:8080/jspui/bitstream/123456789/15206/1/RafaelVA_DISSERT.pdf

https://lelinopontes.files.wordpress.com/2014/09/tut_arduino.pdf

http://seurobo.com.br/robo-autonomosr-1-o-robo-autonomo-simples-com-arduino/

 

https://www.filipeflop.com/blog/guia-gratuito-como-comecar-com-arduino/

Tutorial_arduino

 

ROTINA PARA LEITURA DE SENSOR DE TEMPERATURA

#include <OneWire.h>
#include <DallasTemperature.h>

// Sensor input pin
#define DATA_PIN 3
// How many bits to use for temperature values: 9, 10, 11 or 12
#define SENSOR_RESOLUTION 12
// Index of sensors connected to data pin, default: 0
#define SENSOR_INDEX 0

OneWire oneWire(DATA_PIN);
DallasTemperature sensors(&oneWire);
DeviceAddress sensorDeviceAddress;

int x = 0;
int linha = 0;

void setup() {
// Inicializa a porta serial
Serial.begin(9600);
// Interface com Excel (PLX-DAQ)
Serial.println(“CLEARDATA”);
Serial.println(“LABEL, Dia/Mes/Ano , HH/MM/SS , x , Temp_C , Temp_F “);
sensors.begin();
sensors.getAddress(sensorDeviceAddress, 0);
sensors.setResolution(sensorDeviceAddress, SENSOR_RESOLUTION);
}

void loop() {
sensors.requestTemperatures();
// Measurement may take up to 750ms

float temperatureInCelsius = sensors.getTempCByIndex(SENSOR_INDEX);
float temperatureInFahrenheit = sensors.getTempFByIndex(SENSOR_INDEX);

Serial.print(“DATA, DATE, TIME,”);
Serial.print(x);
Serial.print(“,”);
Serial.print(temperatureInCelsius, 4);
Serial.print(“,”);
Serial.println(temperatureInFahrenheit, 4);

linha++;
x++;
delay(00);
}

Modelo da montagem – FILIPEFLOP
Sensor de temperatura DS18B20
Cabo DS18B20
Circuito Arduino DS18B20

Programa DS18B20 e display LCD 16×2

Para o programa precisamos de duas bibliotecas, a Dallas Temperature (download) e também a OneWire(download). Essas duas bibliotecas trabalham em conjunto para extrair os dados do sensor. Descompacte as bibliotecas e copie as pastas DallasTemperature e OneWire para dentro da pasta LIBRARIES da IDE do Arduino.

As bibliotecas devem ser baixadas e inseridas no library do arduino.

https://www.filipeflop.com/blog/sensor-de-temperatura-ds18b20-arduino/

UTILIZANDO UM SENSOR DE TEMPERATURA LM35 – ARDUINO

https://www.arduinoecia.com.br/2013/02/lm35-sensor-de-temperatura.html

Esquema de montagem no Arduino Uno do sensor de temperatura LM35

4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Sensor de temperatura usando o LM35
const int LM35 = A0; // Define o pino que lera a saída do LM35
float temperatura; // Variável que armazenará a temperatura medida
//Função que será executada uma vez quando ligar ou resetar o Arduino
void setup() {
Serial.begin(9600); // inicializa a comunicação serial
}
//Função que será executada continuamente
void loop() {
temperatura = (float(analogRead(LM35))*5/(1023))/0.01;
Serial.print(“Temperatura: “);
Serial.println(temperatura);
delay(2000);
}

https://portal.vidadesilicio.com.br/lm35-medindo-temperatura-com-arduino/

Circuito LM35 Arduino