44
Minicurso com Projetos Práticos Jotacísio

Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira

Embed Size (px)

Citation preview

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 placaR$119,90 kit básicofelipeflop.com

Mini Light

R$49,90 somente placaR$119,90 kit básicofelipeflop.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ômetroint outputValue = 0; // leitura da saida PWM (analógica)

void setup() {// inicializa a comunicacao serialSerial.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 constantesconst 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