Go Down

Topic: PROBLEMAS ENVIANDO SEÑAL ANALÓGICA VÍA BLUETOOTH (Read 535 times) previous topic - next topic

MAPRISA

Hola
tengo un problema que no consigo solucionar,  estoy probando vía bluetooth   el encendido de un led  controlado por un potenciometro con señal pwm entre dos arduinos.
Un solo led lo puedo controlar con la señal pwm, el led esta en un arduino y el potenciometro en otro y va bien, pero no se como implementar el  código del arduino  escalvo para que me lea los valores de cada potenciometros individualmente y envie los parametros a cada led según se le indique agradecería la ayuda un saludo y gracias de antemano

Khazus

Buenas Maprisa, no se si entendí bien, quieres realizar una medida de varios potenciometros y mandar la lectura de todos para que cada uno controle un led diferente.

Lo que tienes que hacer es crear una cadena de caracteres con la lectura de todos los potenciometros, separados por un caracter separador, además puedes incluir algún caracter de final de trama.

Pero vamos como vas a escribir por PWM y solo vas a poder utilizar 8 bits, puedes insertar todos los elementos como una cadena de caracteres y cada caracter corresponde con un LED.

Code: [Select]

char Led1 = AnalogRead(A0)/4;
char Led2 = AnalogRead(A1)/4;
.
.
.
String Cadena = Led1+Led2+...;


En el receptor:
Code: [Select]

while(Serial. available()){
  Led1=Serial.Read();
  Led2=Serial.Read();
  .
  .
  .

}
Serial.flush();





MAPRISA

Hola Khazus, es un placer recibir tu tan inmediata respuesta, voy a probar con lo que propones, si tengo algún contratiempo subo el código que uso, para que observes según tu experiencia y me cuentas, muchas gracia de verdad, en breve te contesto

MAPRISA

Hola Khazus, no logro entender las lineas que me enviaste de código, mejor dicho no se como adjuntarlo a mi código, te he enviado un mensaje, donde te comento que no tengo mucha experiencia programando y que igual voy a pasar por un usuario un poco pesaito con tantas preguntas, pero quiero aprender, sin intención de molestar, entonces quisiera pedirte que me pasaras dos ejemplos el del emisor y el del receptor donde se usen dos potenciometros y en el emisor dos led, , si no , te envío el código que estoy usando y me lo rectificas a tu criterio, gracias de nuevo

 No vea que lío, te escribo directamente pinchando en tu icono, creyendo que es como un mensaje privado y resulta que sale aqui

MAPRISA

Khazus, este es mi código en el maestro o emisor:



#include <SoftwareSerial.h>

SoftwareSerial seriblue(2,3);// RX,TX


int potpin = A0;
int val, val1, val2;
int potpin1 = A1;


void setup()
{

// inicia puerto serial
Serial.begin(9600);
seriblue.begin(9600);

}

void loop()
{
 
 val = analogRead(potpin);//asignamos valores del potenciometro 1 a (val)
 val = map(val, 0, 1023, 0, 255);
 seriblue.write(val);
 delay(20);
 

val1 = analogRead(potpin1);
val1 = map(val1, 0, 1023, 0, 255);
seriblue.write(val1);
delay(20);
  }

y este es el del receptor o esclavo:

#include <SoftwareSerial.h>
SoftwareSerial myserial(2,3);


 byte incomingByte;

     
    void setup() {
    // inicia el puerto serial
    Serial.begin(9600);
    myserial.begin(9600);

    // declara el pin 11 como OUTPUT - LED
    pinMode (11, OUTPUT);
    }

    void loop() {
     if (Serial.available() > 0) {
   
    // da el valor  al 'incomingByte' variable
    incomingByte = Serial.read();

    // escribe el valor en el pin 11
    analogWrite(11, int(incomingByte));
 
     } 
  }

Go Up