¿Cómo enviar múltiples señales desde el arduino para el procesamiento

La única cosa mejor que el envío de señales a procesamiento está enviando señales múltiples, ¿verdad? Envío de señales múltiples es a menudo un obstáculo, sin embargo, porque aunque el envío de valores de múltiples sensores es fácil, el manejo de ellos en el orden correcto en el otro extremo a menudo puede ser difícil.

Necesitas:

  • Un Arduino Uno

  • Un tablero

  • Dos potenciómetros 10k ohm

  • Un pulsador

  • A 10k ohm resistor

  • cables de salto

Video: Tutorial Arduino: Audio y reconocimiento de voz (SOMO14D)

El circuito es una combinación de tres entradas separadas. A pesar de que todos ellos utilizan la misma corriente y la tierra, se puede pensar en las entradas de forma individual. Dos potenciómetros proporcionan dos valores. Estos están conectados en la misma forma que lo haría cablear un sensor de temperatura, con un lado conectado a 5V y el otro cable a la clavija de entrada analógica que se leyéndolo así como a GND a través de un resistor.

Video: ✅ WIFI Modulo ESP8266 Conectarse y enviar datos por Internet ❗Comandos AT❗

Estas son las que podrían ser sustituidos por cualquier entrada analógica con las resistencias correspondientes. El pulsador proporciona una entrada digital también. Un lado del botón pulsador está conectado a 5 V y la otra es por cable al pin digital de lectura, así como GND a través de una resistencia.

Cómo configurar el código de Arduino

Después de montar el circuito, se necesita el software adecuado para utilizarlo. En el menú Arduino, seleccione Archivo → Ejemplos → → 04.Communication SerialCallResponse. Este bosquejo contiene tanto el código de Arduino y el código de procesamiento relevante para el boceto para trabajar. El código de procesamiento bajo el código de Arduino se comenta fuera para evitar interferencias con el boceto Arduino.

/ * Llamada en serie y ResponseLanguage: Programa de cableado / ArduinoThis envía un ASCII A (byte de valor 65) en startupand reitera que hasta que obtiene unos datos in.Then espera un byte en el puerto serie, andsends tres valores del sensor cada vez que se pone un byte in.Thanks a Greg Shakar y Scott Fitzgerald para el circuito improvementsThe: * potenciómetros conectados a las entradas analógicas 0 y 1 * pulsador unidos a e / S digital 2Created 26 de septiembre 2005by Tom Igoemodified 24 de abril de 2012by Tom Igoe y Scott FitzgeraldThis código de ejemplo está en el domain.http pública: //arduino.cc/en/Tutorial/SerialCallResponse*/int firstSensor = 0- // primera sensor analógicoint secondSensor = 0- sensor segunda analógica //int thirdSensor = 0- sensor digital //int inByte = 0- // entrante configuración bytevoid serie () {// inicia puerto serie a 9600 bps: Serial.begin (9600) -mientras (de serie) {- // esperar a que el puerto serie para conectar. Necesario para Leonardo only}pinMode(2, ENTRADA) - // sensor digital está en 2establishContact pin digital () - // enviar un byte para establecer contacto hasta que el receptor responde //} void loop () {// si conseguimos un byte válida, lea ins analógicas: si (de serie. disponible() gt; 0) {// obtener el byte de entrada: inByte = Serial.read() - // leer primera entrada analógica, se divide por 4 para hacer que el rango 0-255: firstSensor = analogRead(A0) / 4 - 10 ms de retardo // dejar que el ADC recuperar:retrasar(10) - // leer segunda entrada analógica, se divide por 4 para hacer que el rango 0-255: secondSensor = analogRead(1) / 4 - // interruptor de lectura, asignarlo a 0 o 255LthirdSensor = mapa(digitalRead(2), 0, 1, 0, 255) - // enviar valores de los sensores:Serial.write(FirstSensor) -Serial.write(SecondSensor) -Serial.write(ThirdSensor) -}}vacío establishContact () {while (Serial.available () lt; = 0) {Serial.print(`UN`) - // enviar una A mayúscularetrasar(300) -}}

Sube este código a su Arduino.

Cómo configurar el código de procesamiento

Encontrar el código de procesamiento dentro de la etiqueta de comentario de varias líneas (/ * * /) En la parte inferior del boceto Arduino SerialCallResponse. Copiar el código dentro de los marcadores de comentario en un nuevo boceto de procesamiento y guardar con un nombre apropiado.

Video: Cómo enviar variables mediante radiofrecuencia con arduino

// Este código de ejemplo está en el dominio público.importar processing.serial *. -int bgcolor- // Color del fondoint fgcolor- // Llenar colorSerial myPort- // El puerto serieint[] SerialInArray = new int[3] - // ¿Dónde vamos a poner lo que recibimosint serialCount = 0- // Es un recuento de la cantidad de bytes que recibimosint xpos, ypos- // Posición de salida de la bolabooleano firstContact = falso- // Ya que hemos escuchado de la // configura microcontrollervoid () {tamaño(256, 256) - // tamaño del escenarionoStroke() - // No se rayan en lo siguiente que dibujado // Establecer la posición inicial de la pelota (en el centro del escenario) xpos = anchura/ 2-ypos = altura/ 2 - // imprimir una lista de los puertos serie, para fines de depuración:println(De serie.lista()) - // Sé que el primer puerto en la lista de serie en mi mac // es siempre mi adaptador FTDI, por lo abro Serial.list () [0] .// En máquinas Windows, esto generalmente se abre COM1. // Abrir cualquier puerto es el que usted está utilizando.Cuerda PORTNAME = Serial.lista() [0] = -myPort nuevo De serie(esta, PORTNAME, 9600) -} void draw () {fondo(Bgcolor) -llenar(Fgcolor) - // Dibuje la formaelipse(xpos, ypos, 20, 20) -}vacío serialEvent (MyPort de serie) {// leer un byte desde el puerto serie:int inByte = myPort.read () - // si este es el primer byte recibido, y es una A, // borrar el búfer de serie y tenga en cuenta que usted ha // tuvo el primer contacto de la microcontroller.// De lo contrario, añadir el byte de entrada a la matriz:Si (FirstContact == falso) {Si (InByte == `UN`) {MyPort.clear () - // Limpia el puerto serie bufferfirstContact = cierto- // que ha tenido el primer contacto de la microcontrollermyPort.write (`UN`) - // pedir más}} else {// Añadir el último byte del puerto serie a serie: serialInArray [serialCount] = inByte-serialCount ++ - // Si tenemos 3 bytes:Si (serialCount gt; 2) {xpos = serialInArray [0] = -ypos serialInArray [1] -fgcolor = serialInArray [2] - // imprimir los valores (para fines de depuración solamente):println(xpos + "t" + ypos + "t" + fgcolor) - // enviar una A mayúscula para solicitar nuevas lecturas de los sensores: myPort.write (`UN`) - // Restablecer serialCount: serialCount = 0-}}}

Haga clic en el botón Ejecutar para ejecutar el boceto de procesamiento, y aparece un applet. El applet tiene un fondo negro, y cada vez que se pulsa el botón, aparece un punto blanco. Mover los potenciómetros para mover el punto horizontal y verticalmente. Al soltar el pulsador, el punto desaparecerá.

Artículos Relacionados