Título: Controle de Sensores
Nome: Professor
Empresa: Escola Técnica Parobé
Data: 12/03/2019
Versão: 0.1.0
Descrição:
Entradas Analógicas, Saída Analógica, Saida serial
Este circuito lê a entrada analógica, mapeia e joga o resultado para a saida analógica com
objetivo de controlar a rotação de um motor CC.
Também imprime na saída serial.
O circuito:
- Potenciômetro ligado ao pino analógico A0.
O centro do potenciômetro vai ao pino..
Os demais lados em +5V e GND
Motor CC , baixo consumo
Incluir biblioteca I2C
criado em 11/03/2019
modificado em 22/03/2019
Referências em: Antonio
http://www.arduino.cc/en/Tutorial/AnalogInOutSerial
Fim do Cabeçalho*/
// Parte 2 - Inclusáo de bibliotecas
#include <Arduino.h> // Biblioteca padrão
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Parte 3 - Planejamento - Definição dos pinos e funções
#define sensorPino A0 // define rótulo ao pino
#define pinoSaida 13 //define ao rótulo ao pino 13
//const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
//LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
// Parte 4 Definição de Estruturas e Variáveis
void imprimeSerial (); // declara uma estrutura de impressão
void imprimeLcd();
int valorSensor = 0; // valor inicial do sensor
int valorSaida = 0; // valor inicial da saída
// Parte 5faz o setup do hardware
void setup(){
Serial.begin(9600);// inicializa a porta serial- reservar pinos 0 e 1
lcd.begin(16,2);
}
// Parte 6 - função principal- corpo do programa
void loop() {
valorSensor = analogRead(sensorPino);// lê entrada A) de o a 1023
valorSaida = map(valorSensor, 0, 1023, 0, 255);// converte entrada para saída - resolução
analogWrite(pinoSaida, valorSaida);//escreve na saída
imprimeSerial();
imprimeLcd();
}
// Rotina de impressão no monitor serial
void imprimeSerial () {
Serial.print("sensor = "); // imprime a palavra sensor
Serial.print(valorSensor);// imprime o valor da entrada
Serial.print("\t motor = ");// tabula /t e imprime a palavra saida
Serial.println(valorSaida);// imprime em nova linha o valor saida
delay(2);// aguarda 2 ms
}
void imprimeLcd() {
lcd.setCursor(0, 0);
lcd.print("sensor = " );
lcd.print(valorSensor);
lcd.setCursor(0, 1);
lcd.print ("motor =");
lcd.print(valorSaida);
}