Comunicação entre PC e Arduino
Numa sociedade, todo o indivíduo necessita de comunicar com os restantes. Para tal, desenvolveu e adquiriu, ao longo na sua vida, formas e protocolos de comunicação. Na electrónica e na informática não é menos verdade essa realidade. Cada vez mais a sociedade exige que haja comunicação entre homem/máquina e máquina/máquina.
O que se pretende demonstrar com um pequeno exemplo são, as várias fases que teremos que ter em conta quando temos que comunicar com um Micro-controlador e o nosso PC. Neste caso o Micro-controlador escolhido foi o Arduino,
lendo valores das portas analógicas e imprimi-la na serial
Este exemplo mostra como ler os pinos das entradas analógicas, mostrar esses valores através da serial do arduino.
Material necessário
1 Placa arduino
6 Potenciômetro
Conecte um pino do canto do potenciômetro no pino 5volts do arduino, o pino do meio do potenciômetro conecte no pinos analog A0,A1,A2,A3,A4,A5,A6, e o terceiro pino do potenciômetro conectado
no GND do arduino.E faça o mesmo com os outros potenciômetro.
Veja abaixo o desenho da ligação:
Circuito:
Conforme o desenho percebe-se que os pinos A0,A1,A2,A3,A4,A5,A6 do arduino é ligado no pino do meio do potenciômetro, esses pinos A0,A1,A2,A3,A4,A5,A6 é determinado como pino de entrada, é nele que faremos uma leitura de uma tensão externa,essa tensão externa é a tensão que existe entre o pino do meio do potenciômetroe o GND, ou seja, conforme giramos o potenciômetro os pinos terá determinada tensão.
Codigo:
const int analogInPin0 = A0;
const int analogInPin1 = A1;
const int analogInPin2 = A2;
const int analogInPin3 = A3;
const int analogInPin4 = A4;
const int analogInPin5 = A5;
const int analogInPin6 = A6;
int sensorValue0 = 0;
int sensorValue1 = 0;
int sensorValue2 = 0;
int sensorValue3 = 0;
int sensorValue4 = 0;
int sensorValue5 = 0;
int sensorValue6 = 0;
int outputValue0 = 0;
int outputValue1 = 0;
int outputValue2 = 0;
int outputValue3 = 0;
int outputValue4 = 0;
int outputValue5 = 0;
int outputValue6 = 0;
char envia;
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
char Read = Serial.read();
if (Read == 'A') //avisa que o software foi conectado com o microcontrolador, para enviar os dados
{
envia = 'A';
}
if (Read == 'B') //Avisa que o software foi desconectado e bloqueia o envio de dados
{
envia = 'B';
}
if (Read == 'c') //Liga o lede da porta 13
{
digitalWrite(2, HIGH);
}
if (Read == 'd') //Desliga o lede da porta 13
{
digitalWrite(2, LOW);
}
if (Read == 'e') //Liga o lede da porta 13
{
digitalWrite(3, HIGH);
}
if (Read == 'f') //Desliga o lede da porta 13
{
digitalWrite(3, LOW);
}
if (Read == 'g') //Liga o lede da porta 13
{
digitalWrite(4, HIGH);
}
if (Read == 'h') //Desliga o lede da porta 13
{
digitalWrite(4, LOW);
}
if (Read == 'i') //Liga o lede da porta 13
{
digitalWrite(5, HIGH);
}
if (Read == 'j') //Desliga o lede da porta 13
{
digitalWrite(5, LOW);
}
if (Read == 'k') //Liga o lede da porta 13
{
digitalWrite(6, HIGH);
}
if (Read == 'l') //Desliga o lede da porta 13
{
digitalWrite(6, LOW);
}
if (Read == 'm') //Liga o lede da porta 13
{
digitalWrite(7, HIGH);
}
if (Read == 'n') //Desliga o lede da porta 13
{
digitalWrite(7, LOW);
}
if (Read == 'o') //Liga o lede da porta 13
{
digitalWrite(8, HIGH);
}
if (Read == 'p') //Desliga o lede da porta 13
{
digitalWrite(8, LOW);
}
if (Read == 'q') //Liga o lede da porta 13
{
digitalWrite(9, HIGH);
}
if (Read == 'r') //Desliga o lede da porta 13
{
digitalWrite(9, LOW);
}
if (Read == 's') //Liga o lede da porta 13
{
digitalWrite(10, HIGH);
}
if (Read == 't') //Desliga o lede da porta 13
{
digitalWrite(10, LOW);
}
if (Read == 'u') //Liga o lede da porta 13
{
digitalWrite(11, HIGH);
}
if (Read == 'v') //Desliga o lede da porta 13
{
digitalWrite(11, LOW);
}
if (Read == 'w') //Liga o lede da porta 13
{
digitalWrite(12, HIGH);
}
if (Read == 'x') //Desliga o lede da porta 13
{
digitalWrite(12, LOW);
}
if (Read == 'y') //Liga o lede da porta 13
{
digitalWrite(13, HIGH);
}
if (Read == 'z') //Desliga o lede da porta 13
{
digitalWrite(13, LOW);
}
}
sensorValue0 = analogRead(analogInPin0);
outputValue0 = map(sensorValue0, 0, 1023, 0, 255);
sensorValue1 = analogRead(analogInPin1);
outputValue1 = map(sensorValue1, 0, 1023, 0, 255);
sensorValue2 = analogRead(analogInPin2);
outputValue2 = map(sensorValue2, 0, 1023, 0, 255);
sensorValue3 = analogRead(analogInPin3);
outputValue3 = map(sensorValue3, 0, 1023, 0, 255);
sensorValue4 = analogRead(analogInPin4);
outputValue4 = map(sensorValue4, 0, 1023, 0, 255);
sensorValue5 = analogRead(analogInPin5);
outputValue5 = map(sensorValue5, 0, 1023, 0, 255);
sensorValue6 = analogRead(analogInPin6);
outputValue6 = map(sensorValue6, 0, 1023, 0, 255);
if (envia == 'A') {
Serial.print(outputValue0);
Serial.print("|");
Serial.print(outputValue1);
Serial.print("|");
Serial.print(outputValue2);
Serial.print("|");
Serial.print(outputValue3);
Serial.print("|");
Serial.print(outputValue4);
Serial.print("|");
Serial.print(outputValue5);
Serial.print("|");
Serial.println(outputValue6);
}
//delay(100);
}
Numa sociedade, todo o indivíduo necessita de comunicar com os restantes. Para tal, desenvolveu e adquiriu, ao longo na sua vida, formas e protocolos de comunicação. Na electrónica e na informática não é menos verdade essa realidade. Cada vez mais a sociedade exige que haja comunicação entre homem/máquina e máquina/máquina.
O que se pretende demonstrar com um pequeno exemplo são, as várias fases que teremos que ter em conta quando temos que comunicar com um Micro-controlador e o nosso PC. Neste caso o Micro-controlador escolhido foi o Arduino,
lendo valores das portas analógicas e imprimi-la na serial
Este exemplo mostra como ler os pinos das entradas analógicas, mostrar esses valores através da serial do arduino.
Material necessário
1 Placa arduino
6 Potenciômetro
Conecte um pino do canto do potenciômetro no pino 5volts do arduino, o pino do meio do potenciômetro conecte no pinos analog A0,A1,A2,A3,A4,A5,A6, e o terceiro pino do potenciômetro conectado
no GND do arduino.E faça o mesmo com os outros potenciômetro.
Veja abaixo o desenho da ligação:
Circuito:
Conforme o desenho percebe-se que os pinos A0,A1,A2,A3,A4,A5,A6 do arduino é ligado no pino do meio do potenciômetro, esses pinos A0,A1,A2,A3,A4,A5,A6 é determinado como pino de entrada, é nele que faremos uma leitura de uma tensão externa,essa tensão externa é a tensão que existe entre o pino do meio do potenciômetroe o GND, ou seja, conforme giramos o potenciômetro os pinos terá determinada tensão.
Codigo:
const int analogInPin0 = A0;
const int analogInPin1 = A1;
const int analogInPin2 = A2;
const int analogInPin3 = A3;
const int analogInPin4 = A4;
const int analogInPin5 = A5;
const int analogInPin6 = A6;
int sensorValue0 = 0;
int sensorValue1 = 0;
int sensorValue2 = 0;
int sensorValue3 = 0;
int sensorValue4 = 0;
int sensorValue5 = 0;
int sensorValue6 = 0;
int outputValue0 = 0;
int outputValue1 = 0;
int outputValue2 = 0;
int outputValue3 = 0;
int outputValue4 = 0;
int outputValue5 = 0;
int outputValue6 = 0;
char envia;
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
char Read = Serial.read();
if (Read == 'A') //avisa que o software foi conectado com o microcontrolador, para enviar os dados
{
envia = 'A';
}
if (Read == 'B') //Avisa que o software foi desconectado e bloqueia o envio de dados
{
envia = 'B';
}
if (Read == 'c') //Liga o lede da porta 13
{
digitalWrite(2, HIGH);
}
if (Read == 'd') //Desliga o lede da porta 13
{
digitalWrite(2, LOW);
}
if (Read == 'e') //Liga o lede da porta 13
{
digitalWrite(3, HIGH);
}
if (Read == 'f') //Desliga o lede da porta 13
{
digitalWrite(3, LOW);
}
if (Read == 'g') //Liga o lede da porta 13
{
digitalWrite(4, HIGH);
}
if (Read == 'h') //Desliga o lede da porta 13
{
digitalWrite(4, LOW);
}
if (Read == 'i') //Liga o lede da porta 13
{
digitalWrite(5, HIGH);
}
if (Read == 'j') //Desliga o lede da porta 13
{
digitalWrite(5, LOW);
}
if (Read == 'k') //Liga o lede da porta 13
{
digitalWrite(6, HIGH);
}
if (Read == 'l') //Desliga o lede da porta 13
{
digitalWrite(6, LOW);
}
if (Read == 'm') //Liga o lede da porta 13
{
digitalWrite(7, HIGH);
}
if (Read == 'n') //Desliga o lede da porta 13
{
digitalWrite(7, LOW);
}
if (Read == 'o') //Liga o lede da porta 13
{
digitalWrite(8, HIGH);
}
if (Read == 'p') //Desliga o lede da porta 13
{
digitalWrite(8, LOW);
}
if (Read == 'q') //Liga o lede da porta 13
{
digitalWrite(9, HIGH);
}
if (Read == 'r') //Desliga o lede da porta 13
{
digitalWrite(9, LOW);
}
if (Read == 's') //Liga o lede da porta 13
{
digitalWrite(10, HIGH);
}
if (Read == 't') //Desliga o lede da porta 13
{
digitalWrite(10, LOW);
}
if (Read == 'u') //Liga o lede da porta 13
{
digitalWrite(11, HIGH);
}
if (Read == 'v') //Desliga o lede da porta 13
{
digitalWrite(11, LOW);
}
if (Read == 'w') //Liga o lede da porta 13
{
digitalWrite(12, HIGH);
}
if (Read == 'x') //Desliga o lede da porta 13
{
digitalWrite(12, LOW);
}
if (Read == 'y') //Liga o lede da porta 13
{
digitalWrite(13, HIGH);
}
if (Read == 'z') //Desliga o lede da porta 13
{
digitalWrite(13, LOW);
}
}
sensorValue0 = analogRead(analogInPin0);
outputValue0 = map(sensorValue0, 0, 1023, 0, 255);
sensorValue1 = analogRead(analogInPin1);
outputValue1 = map(sensorValue1, 0, 1023, 0, 255);
sensorValue2 = analogRead(analogInPin2);
outputValue2 = map(sensorValue2, 0, 1023, 0, 255);
sensorValue3 = analogRead(analogInPin3);
outputValue3 = map(sensorValue3, 0, 1023, 0, 255);
sensorValue4 = analogRead(analogInPin4);
outputValue4 = map(sensorValue4, 0, 1023, 0, 255);
sensorValue5 = analogRead(analogInPin5);
outputValue5 = map(sensorValue5, 0, 1023, 0, 255);
sensorValue6 = analogRead(analogInPin6);
outputValue6 = map(sensorValue6, 0, 1023, 0, 255);
if (envia == 'A') {
Serial.print(outputValue0);
Serial.print("|");
Serial.print(outputValue1);
Serial.print("|");
Serial.print(outputValue2);
Serial.print("|");
Serial.print(outputValue3);
Serial.print("|");
Serial.print(outputValue4);
Serial.print("|");
Serial.print(outputValue5);
Serial.print("|");
Serial.println(outputValue6);
}
//delay(100);
}
const int analogInPin1 = A1;
const int analogInPin2 = A2;
const int analogInPin3 = A3;
const int analogInPin4 = A4;
const int analogInPin5 = A5;
const int analogInPin6 = A6;
int sensorValue0 = 0;
int sensorValue1 = 0;
int sensorValue2 = 0;
int sensorValue3 = 0;
int sensorValue4 = 0;
int sensorValue5 = 0;
int sensorValue6 = 0;
int outputValue0 = 0;
int outputValue1 = 0;
int outputValue2 = 0;
int outputValue3 = 0;
int outputValue4 = 0;
int outputValue5 = 0;
int outputValue6 = 0;
char envia;
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
char Read = Serial.read();
if (Read == 'A') //avisa que o software foi conectado com o microcontrolador, para enviar os dados
{
envia = 'A';
}
if (Read == 'B') //Avisa que o software foi desconectado e bloqueia o envio de dados
{
envia = 'B';
}
if (Read == 'c') //Liga o lede da porta 13
{
digitalWrite(2, HIGH);
}
if (Read == 'd') //Desliga o lede da porta 13
{
digitalWrite(2, LOW);
}
if (Read == 'e') //Liga o lede da porta 13
{
digitalWrite(3, HIGH);
}
if (Read == 'f') //Desliga o lede da porta 13
{
digitalWrite(3, LOW);
}
if (Read == 'g') //Liga o lede da porta 13
{
digitalWrite(4, HIGH);
}
if (Read == 'h') //Desliga o lede da porta 13
{
digitalWrite(4, LOW);
}
if (Read == 'i') //Liga o lede da porta 13
{
digitalWrite(5, HIGH);
}
if (Read == 'j') //Desliga o lede da porta 13
{
digitalWrite(5, LOW);
}
if (Read == 'k') //Liga o lede da porta 13
{
digitalWrite(6, HIGH);
}
if (Read == 'l') //Desliga o lede da porta 13
{
digitalWrite(6, LOW);
}
if (Read == 'm') //Liga o lede da porta 13
{
digitalWrite(7, HIGH);
}
if (Read == 'n') //Desliga o lede da porta 13
{
digitalWrite(7, LOW);
}
if (Read == 'o') //Liga o lede da porta 13
{
digitalWrite(8, HIGH);
}
if (Read == 'p') //Desliga o lede da porta 13
{
digitalWrite(8, LOW);
}
if (Read == 'q') //Liga o lede da porta 13
{
digitalWrite(9, HIGH);
}
if (Read == 'r') //Desliga o lede da porta 13
{
digitalWrite(9, LOW);
}
if (Read == 's') //Liga o lede da porta 13
{
digitalWrite(10, HIGH);
}
if (Read == 't') //Desliga o lede da porta 13
{
digitalWrite(10, LOW);
}
if (Read == 'u') //Liga o lede da porta 13
{
digitalWrite(11, HIGH);
}
if (Read == 'v') //Desliga o lede da porta 13
{
digitalWrite(11, LOW);
}
if (Read == 'w') //Liga o lede da porta 13
{
digitalWrite(12, HIGH);
}
if (Read == 'x') //Desliga o lede da porta 13
{
digitalWrite(12, LOW);
}
if (Read == 'y') //Liga o lede da porta 13
{
digitalWrite(13, HIGH);
}
if (Read == 'z') //Desliga o lede da porta 13
{
digitalWrite(13, LOW);
}
}
sensorValue0 = analogRead(analogInPin0);
outputValue0 = map(sensorValue0, 0, 1023, 0, 255);
sensorValue1 = analogRead(analogInPin1);
outputValue1 = map(sensorValue1, 0, 1023, 0, 255);
sensorValue2 = analogRead(analogInPin2);
outputValue2 = map(sensorValue2, 0, 1023, 0, 255);
sensorValue3 = analogRead(analogInPin3);
outputValue3 = map(sensorValue3, 0, 1023, 0, 255);
sensorValue4 = analogRead(analogInPin4);
outputValue4 = map(sensorValue4, 0, 1023, 0, 255);
sensorValue5 = analogRead(analogInPin5);
outputValue5 = map(sensorValue5, 0, 1023, 0, 255);
sensorValue6 = analogRead(analogInPin6);
outputValue6 = map(sensorValue6, 0, 1023, 0, 255);
if (envia == 'A') {
Serial.print(outputValue0);
Serial.print("|");
Serial.print(outputValue1);
Serial.print("|");
Serial.print(outputValue2);
Serial.print("|");
Serial.print(outputValue3);
Serial.print("|");
Serial.print(outputValue4);
Serial.print("|");
Serial.print(outputValue5);
Serial.print("|");
Serial.println(outputValue6);
}
//delay(100);
}

