Controlar servo motor por bluetooth e receber dados de sensor de corrente no android.

Bom dia amigos!

Estou iniciando meus estudos sobre o Arduíno e gostaria de uma ajuda na programação para uma pequena maquete (trabalho Faculdade). 

Preciso controlar um servo motor via Bluetooth e receber dados de um sensor de corrente ACS712-5A na tela do Android. 

Bem, pesquisando na internet consegui fazer ambos funcionarem separadamente.

Segue os programação Arduino UNO R3, Servo SG90 e Bluetooth HC-05: (Lembrando que o app que usei é o microController BT para android) para controlar o servo.

// Programa : Controle de servo pelo Android utilizando Bluetooth (Módulo BT HC-05)

#include <Servo.h>

Servo servo;

int val;

void setup()
{
//Pino de dados do servo ligado na porta 4
servo.attach(4);
Serial.begin(9600);
}

void loop()
{
if(Serial.available()>=2)
{
int key=Serial.read();
int val=Serial.read();
servo.write(val);
}
}

Programa para o sensor de corrente elétrica (Módulo ACS712 - 5A)

int VQ;
int ACSPin = A2;
void setup() {
Serial.begin(9600);
VQ = determineVQ(ACSPin); //Quiscent output voltage - the average voltage ACS712 shows with no load (0 A)
delay(1000);
}
void loop() {
Serial.print("ACS712@A2:");Serial.print(readCurrent(ACSPin),3);Serial.println(" mA");
delay(150);
}
int determineVQ(int PIN) {
Serial.print("estimating avg. quiscent voltage:");
long VQ = 0;
//read 5000 samples to stabilise value
for (int i=0; i<10000; i++) {
VQ += abs(analogRead(PIN));
delay(1);//depends on sampling (on filter capacitor), can be 1/80000 (80kHz) max.
}
VQ /= 100000;
Serial.print(map(VQ, 0, 1023, 0, 5000));Serial.println(" mV");
return int(VQ);
}
float readCurrent(int PIN) {
int current = 0;
int sensitivity = 185;//change this to 100 for ACS712-20A or to 66 for ACS712-30A or to 185 for ACS712-5A
//read 5 samples to stabilise value
for (int i=0; i<200; i++) {
current += abs(analogRead(PIN) - VQ);
delay(1);
}
current = map(current/200, 0, 1023, 0, 5000);
return float(current)/sensitivity;
}

Como disse consegui fazer ambos funcionarem separadamente. Porém recebi os dados do sensor de corrente via Monitor serial do programa do Arduíno no PC.

Agora preciso que apareçam no visor de um celular android juntamente com o controle do servo.

Grato pela atenção!

Exibições: 1706

Responder esta

Respostas a este tópico

Olá Paulo H.

Este servo possui uma corrente bem baixa quando ligado. E se tratando de um servo a variação de corrente será muito rápida.

Você tem que ver os parâmetros de corrente do sensor e do servo.

Caso contrário este sensor de corrente não servirá.

Bem Rodrigo, o sensor não será ligado no servo, vou te explicar melhor.

Vou construir uma pequena maquete do uma chave seccionadora (Subestação de energia elétrica), o servo apenas irá levantar o braço abrindo o contato da chave.

O sensor de corrente será apenas uma garantia de que a chave está aberta, caso o motor falhe.

Não preciso das leituras e sim do status indicando se há ou não corrente no circuito apos a abertura da chave e ao fechá-la novamente preciso que ele indique que há corrente, pois no projeto há um conjunto de leds apos a chave para gerar uma passagem de corrente pelo circuito.

Preciso dessa leitura na tela de um smartphone e controlar o servo tambem pelo smartphone.

Entendeu?

Perdão li muito rápido e entendi errado.

Com o sensor de corrente você terá Tensão de referência só usar os exemplos Analog para ativar uma saída.

Neste site tem quase tudo que vc precisa:

http://www.arduinoecia.com.br/2014/01/enviando-dados-do-arduino-par...

O servo vc poderá controlar  definindo um conjunto de caracteres, e cada um assumirá um valor na variável pos da biblioteca do Servo.h

Só da uma boa pesquisada para conseguir assimilar tudo.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço