Minicurso com Projetos
Práticos
Jotacísio
O QUE É UM ARDUÍNO?
Pra quê serve um arduíno?
Serve para criação de projetos de pequena e
grande escala que exijam a integração e a
programação de itens eletrônicos, ou seja, é uma
ponte entre o seu código e o seu circuito
eletrônico, seja ele qual for.
Pequenas possibilidades
Médias Possibilidades
Tá
ficando
divertido
isso,
não?
Extremas Possibilidades
Possibilidades Úteis
http://cienciaemserrinha.blogspot.com.br/2015_11_01_archive.html
Criadores
E por quê um minicurso de arduino de um evento
de software livre?
https://forum.arduino.cc/
Mas num é hardware, existe hardware livre também é?
Existe sim amiguinhos.
Melhor ainda, Arduino é hardware e software livre
https://code.google.com/archive/p/arduino/downloads
http://playground.a01rduino.cc/
Tipos de Arduíno
R$49,90 somente placa
R$119,90 kit básico
felipeflop.com
Mini Light
R$49,90 somente placa
R$119,90 kit básico
felipeflop.com
Leah Buechley
● ATmega32u4
● 7 saídas PWM
● 12 pinos analógicos
● Permite uso de
fonte externa
simples
● Comunicação por
usb mini
● ATmega32u4
● Arduino UNO +
controlador de
motores(chip
L298)
● 2 motores de
2A cada
● Pinos para
servomotores
com
alimentação
independente
RoMeo AIO/
Robótica
Arduíno Explora
Shields/ Extensões
Sim, mas e os projetos? Tais enrolando demais
macho, o minicurso não era prático?
Como vamos fazer os projetos práticos sem arduíno?
Primeiro Projeto Prático
Componentes
● 1 Potenciômetro
● 2 Resistores
● 2 Leds
Resistor
● Age como uma resistência à passagem de
corrente elétrica.
● Serve para diminuir a intensidade da corrente
ou a tensão num determinado ponto.
● Medido de ohms.
LED
● Diodo Emissor de Luz
● Serve para emitir luzes de
diferentes cores.
Potenciômetro
● Resistência variável (de 0 a o valor no seu corpo)
● Quando 2 terminais são utilizados: resistor comum
Existência de 2 resistores:
● R1: Uma extremidade ao centro
● R2: Outra extremidade ao centro
● Quando um aumenta o outro diminui
Circuito do Primeiro Projeto
Variação de Luminosidade com Potenciômetro
const int pot = A0;
const int led = 11;
const int led2 = 10;
int sensorValue = 0; // leitura do potenciômetro
int outputValue = 0; // leitura da saida PWM (analógica)
void setup() {
// inicializa a comunicacao serial
Serial.begin(9600);
pinMode(led,OUTPUT);
pinMode(led2,OUTPUT);
}
1º parte do código
https://circuits.io/circuits/3269553-variacao-de-luminosidade-com-potenciometro
void loop() {
// faz a leitura da entrada analógica
sensorValue = analogRead(pot);
// converte uma faixa de valores de entrada em uma faixa de valores de saída
/*como funciona
long map(long x, long in_min, long in_max, long out_min, long out_max){
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
*/
outputValue = map(sensorValue, 0, 1023, 0, 255);
// muda o valor da saída analógica
if(outputValue >= 127){
analogWrite(led, outputValue - 127);
digitalWrite(led2,LOW);
}
else{
analogWrite(led2, outputValue);
digitalWrite(led,LOW);
}
// imprime o resultado no monitor serial:
Serial.print("sensor = " );
Serial.print(sensorValue);
Serial.print("t output = ");
Serial.println(outputValue);
// Aguarda 2 milissegundos antes do próximo loop:
delay(2);
}
2º parte do código
Segundo Projeto Prático
Componentes
● 1 Sensor LDR
● 3 Resistores
● 1 Leds
● 1 Push Button
● 1 Sensor de Temperatura LM35
Sensor LDR
● Resistor dependente de luz ou fotoresistor
● Sua resistência aumenta à medida que a
intensidade da luz aumenta
● É construído a partir de material semicondutor com
elevada resistência elétrica.
● Quando a luz que incide sobre o semicondutor tem
uma frequência suficiente, os fótons que incidem
sobre o semicondutor liberam elétrons para a
banda condutora que irão melhorar a sua
condutividade e assim diminuir a resistência.
● Traduzindo, quando tem pouca luz ele é mais
isolante e quando tem muita luz ele é mais
condutor.
Push Button
● Botão acionador ou chaveador eletrônico
● Do inglês: push = empurrar
button = botão, fundo
● Circuito com mola que permite a
passagem de corrente de acordo com o
acionamento do botão
Sensor de Temperatura
LM35
● Circuito integrado que mede a temperatura
ambiente em ºC (graus Celsius)
● Tensão lida do sensor varia linearmente com a
temperatura
● Sua faixa de medição vai de -55ºC até 150 ºC
● Tolerância: +/- 0,5 ºC
● Suporta tensão de até 1,5 V
Circuito do Segundo Projeto
Variação de Luminosidade com Potenciômetro
//Declaração das constantes
const int led = 8; //constante led refere-se ao pino digital 8.
const int botao = 7; //constante botão refere-se ao pino digital 7.
const int ldr = A0; // Entrada analógica para o Resistor dependente de luz.
const int TPM_Sensor = A1;
//Variável que conterá os estados do botão (0 LOW, 1 HIGH).
int estadoBotao = 0;
int chaveador = 0;
//Método setup, executado uma vez ao ligar o Arduino.
void setup() {
Serial.begin(9600);
pinMode(led,OUTPUT); //Definindo pino digital 8 como de saída.
pinMode(botao,INPUT); //Definindo pino digital 7 como de entrada.
//Alterar tensão de referência do pino para 1,1V. É necessário pq o
//Sensor de temperatura só consegue atingir 1,5V na temperatura máxima que é de 150ºC
//caso esteja usando o Arduino Mega 2560 substituir por INTERNAL1V1
//O Arduino Leonardo não aceita esse comando
analogReference(INTERNAL);
}
https://circuits.io/circuits/2924501-acionador-eletronico-com-sensor-ldr-e-sensor-de-temperatura-lm35
1º parte do código
//Método loop, executado enquanto o Arduino estiver ligado.
void loop() {
//Lendo o estado do pino 7, constante botao, e atribuindo
//o resultado a variável estadoBotao.
estadoBotao = digitalRead(botao);
int estadoLDR = analogRead(ldr);
int sensorTemp = analogRead(TPM_Sensor);
int temperatura = sensorTemp * 0.1075268817;
Serial.print("Botao:");
Serial.println(chaveador);
Serial.print("LDR:");
Serial.println(estadoLDR);
Serial.print("Temperatura = ");
Serial.print(temperatura);
Serial.println(" *C");
2º parte do código
//Verificando o estado do botão para definir se acenderá ou
//apagará o led.
if (estadoBotao == HIGH)
{
digitalWrite(led, LOW);
chaveador = !chaveador;
delay(500);
}
else if (chaveador == 1)
{
if (temperatura > 30)
{
digitalWrite(led, HIGH);
}
else { digitalWrite(led, LOW); }
}
else if (chaveador == 0)
{
if (estadoLDR > 800)
{
digitalWrite(led, HIGH);
}
else
{
digitalWrite(led, LOW);
}
}
}
3º parte do código
Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira

Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira

  • 1.
  • 2.
    O QUE ÉUM ARDUÍNO?
  • 4.
    Pra quê serveum arduíno? Serve para criação de projetos de pequena e grande escala que exijam a integração e a programação de itens eletrônicos, ou seja, é uma ponte entre o seu código e o seu circuito eletrônico, seja ele qual for.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
    E por quêum minicurso de arduino de um evento de software livre? https://forum.arduino.cc/
  • 11.
    Mas num éhardware, existe hardware livre também é? Existe sim amiguinhos.
  • 12.
    Melhor ainda, Arduinoé hardware e software livre https://code.google.com/archive/p/arduino/downloads http://playground.a01rduino.cc/
  • 14.
  • 16.
    R$49,90 somente placa R$119,90kit básico felipeflop.com
  • 17.
    Mini Light R$49,90 somenteplaca R$119,90 kit básico felipeflop.com
  • 20.
  • 21.
    ● ATmega32u4 ● 7saídas PWM ● 12 pinos analógicos ● Permite uso de fonte externa simples ● Comunicação por usb mini
  • 22.
    ● ATmega32u4 ● ArduinoUNO + controlador de motores(chip L298) ● 2 motores de 2A cada ● Pinos para servomotores com alimentação independente RoMeo AIO/ Robótica
  • 23.
  • 24.
  • 25.
    Sim, mas eos projetos? Tais enrolando demais macho, o minicurso não era prático?
  • 26.
    Como vamos fazeros projetos práticos sem arduíno?
  • 29.
    Primeiro Projeto Prático Componentes ●1 Potenciômetro ● 2 Resistores ● 2 Leds
  • 30.
    Resistor ● Age comouma resistência à passagem de corrente elétrica. ● Serve para diminuir a intensidade da corrente ou a tensão num determinado ponto. ● Medido de ohms.
  • 31.
    LED ● Diodo Emissorde Luz ● Serve para emitir luzes de diferentes cores.
  • 32.
    Potenciômetro ● Resistência variável(de 0 a o valor no seu corpo) ● Quando 2 terminais são utilizados: resistor comum Existência de 2 resistores: ● R1: Uma extremidade ao centro ● R2: Outra extremidade ao centro ● Quando um aumenta o outro diminui
  • 33.
    Circuito do PrimeiroProjeto Variação de Luminosidade com Potenciômetro
  • 34.
    const int pot= A0; const int led = 11; const int led2 = 10; int sensorValue = 0; // leitura do potenciômetro int outputValue = 0; // leitura da saida PWM (analógica) void setup() { // inicializa a comunicacao serial Serial.begin(9600); pinMode(led,OUTPUT); pinMode(led2,OUTPUT); } 1º parte do código https://circuits.io/circuits/3269553-variacao-de-luminosidade-com-potenciometro
  • 35.
    void loop() { //faz a leitura da entrada analógica sensorValue = analogRead(pot); // converte uma faixa de valores de entrada em uma faixa de valores de saída /*como funciona long map(long x, long in_min, long in_max, long out_min, long out_max){ return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } */ outputValue = map(sensorValue, 0, 1023, 0, 255); // muda o valor da saída analógica if(outputValue >= 127){ analogWrite(led, outputValue - 127); digitalWrite(led2,LOW); } else{ analogWrite(led2, outputValue); digitalWrite(led,LOW); } // imprime o resultado no monitor serial: Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print("t output = "); Serial.println(outputValue); // Aguarda 2 milissegundos antes do próximo loop: delay(2); } 2º parte do código
  • 36.
    Segundo Projeto Prático Componentes ●1 Sensor LDR ● 3 Resistores ● 1 Leds ● 1 Push Button ● 1 Sensor de Temperatura LM35
  • 37.
    Sensor LDR ● Resistordependente de luz ou fotoresistor ● Sua resistência aumenta à medida que a intensidade da luz aumenta ● É construído a partir de material semicondutor com elevada resistência elétrica. ● Quando a luz que incide sobre o semicondutor tem uma frequência suficiente, os fótons que incidem sobre o semicondutor liberam elétrons para a banda condutora que irão melhorar a sua condutividade e assim diminuir a resistência. ● Traduzindo, quando tem pouca luz ele é mais isolante e quando tem muita luz ele é mais condutor.
  • 38.
    Push Button ● Botãoacionador ou chaveador eletrônico ● Do inglês: push = empurrar button = botão, fundo ● Circuito com mola que permite a passagem de corrente de acordo com o acionamento do botão
  • 39.
    Sensor de Temperatura LM35 ●Circuito integrado que mede a temperatura ambiente em ºC (graus Celsius) ● Tensão lida do sensor varia linearmente com a temperatura ● Sua faixa de medição vai de -55ºC até 150 ºC ● Tolerância: +/- 0,5 ºC ● Suporta tensão de até 1,5 V
  • 40.
    Circuito do SegundoProjeto Variação de Luminosidade com Potenciômetro
  • 41.
    //Declaração das constantes constint led = 8; //constante led refere-se ao pino digital 8. const int botao = 7; //constante botão refere-se ao pino digital 7. const int ldr = A0; // Entrada analógica para o Resistor dependente de luz. const int TPM_Sensor = A1; //Variável que conterá os estados do botão (0 LOW, 1 HIGH). int estadoBotao = 0; int chaveador = 0; //Método setup, executado uma vez ao ligar o Arduino. void setup() { Serial.begin(9600); pinMode(led,OUTPUT); //Definindo pino digital 8 como de saída. pinMode(botao,INPUT); //Definindo pino digital 7 como de entrada. //Alterar tensão de referência do pino para 1,1V. É necessário pq o //Sensor de temperatura só consegue atingir 1,5V na temperatura máxima que é de 150ºC //caso esteja usando o Arduino Mega 2560 substituir por INTERNAL1V1 //O Arduino Leonardo não aceita esse comando analogReference(INTERNAL); } https://circuits.io/circuits/2924501-acionador-eletronico-com-sensor-ldr-e-sensor-de-temperatura-lm35 1º parte do código
  • 42.
    //Método loop, executadoenquanto o Arduino estiver ligado. void loop() { //Lendo o estado do pino 7, constante botao, e atribuindo //o resultado a variável estadoBotao. estadoBotao = digitalRead(botao); int estadoLDR = analogRead(ldr); int sensorTemp = analogRead(TPM_Sensor); int temperatura = sensorTemp * 0.1075268817; Serial.print("Botao:"); Serial.println(chaveador); Serial.print("LDR:"); Serial.println(estadoLDR); Serial.print("Temperatura = "); Serial.print(temperatura); Serial.println(" *C"); 2º parte do código
  • 43.
    //Verificando o estadodo botão para definir se acenderá ou //apagará o led. if (estadoBotao == HIGH) { digitalWrite(led, LOW); chaveador = !chaveador; delay(500); } else if (chaveador == 1) { if (temperatura > 30) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } else if (chaveador == 0) { if (estadoLDR > 800) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } } 3º parte do código