Fuerza de regeneración con pantalla LCD (2 / 4 paso)

Paso 2: Conecte al MegaMoto

En primer lugar, necesitamos conectar la MegaMoto. Haga lo siguiente:

-Conectar tu fuente de 12V a la BAT +-terminales

-Conectar el actuador con la MOTA y MOTB

-OPCIONAL conecte BAT + Vin para el Arduino de la computadora de encendido, o dejar el USB enchufado.

-Ajuste los pernos MegaMoto como sigue:

-Habilitar = 13

-PWMA = 11

-PWMB = 3

-Sensor = A5

El botón izquierdo debe hacer que el actuador se extienda, el botón derecho debe hacer el actuador de retracción. Si tus las direcciones son invertidas, luego invierta las conexiones de MOTA y MOTB.

Ahora que se configuran los botones podemos agregar el programa LCD para el resto del programa. Hemos añadido cuatro nuevas funciones. Read_LCD_buttons(), updateTrip(), updateLCD() y printFeedback().

Read_LCD_buttons() es el mismo que el programa de prueba, lee el estado de los botones de la pantalla LCD.

UpdateTrip() se utiliza para comprobar los resultados de la Up y botones y cambiar el límite de amperios para viaje el cierre de seguridad en.

UpdateLCD() es el LCD general escribiendo la función, que escribe la nueva información en la pantalla LCD.

PrintFeedback() escribe el amperaje actual en la pantalla LCD. Esto es independiente de la función principal updateLCD(), por lo que podemos ver la corriente en tiempo real, en lugar esperando el programa a lazo.

Cargar el programa de prueba es, en el siguiente paso que iré sobre las distintas secciones del código en detalle.

Nota: Los límites de viaje y comentarios actuales no son realmente el número de amperios que se están encontrando, son sólo los resultados del sensor de corriente. Puede añadir una ecuación para convertir el valor en amperios antes que escribir en la pantalla LCD.

! rightlatch; botón = btnNONE; firstRun = true; lastButtonpress = millis(); retorno; {}} //end si} //end btnRIGHT} //end latchButtons int read_LCD_buttons() {adc_key_in = analogRead(A0); / leer el valor del sensor delay(20); si (adc_key_in > ninguno - umbral & & adc_key_in < ninguno + umbral) devuelve btnNONE; si (adc_key_in > btnup - umbral & & adc_key_in < btnup + umbral) volver btnUP; si (adc_key_in > btndown - umbral & & adc_key_in < btndown + umbral) volver btnDOWN; si (adc_key_in > btnleft - umbral y & adc_key_in < btnleft + umbral) volver btnLEFT; Si (adc_key_in > btnright - umbral & & adc_key_in < btnright + umbral) volver btnRIGHT; Si (adc_key_in > seleccione - umbral & & adc_key_in < select + umbral) vuelta btnSELECT; volver btnNONE; Cuando todos los demás no devolver ninguno} //end readLCD void updateTrip() {si (botón == btnUP) {currentTimetrip = millis() - lastUpdate; si (currentTimetrip > updateTime) {maxAmps = maxAmps + 1; if (maxAmps > 999) maxAmps = 0; //check para el sobrevolar lcd.setCursor (13, 1); lcd.print(""); //clear valor anterior si lcd.setCursor (maxAmps > 99) (13, 1); else if (maxAmps > 9) lcd.setCursor (14, 1); lcd.setCursor otro (15, 1); //set cursor por consiguiente lcd.print (maxAmps); //write nuevo valor lastUpdate = millis(); } //end si} //end si btnUP else if (botón == btnDOWN) {currentTimetrip = millis() - lastUpdate; if (currentTimetrip > updateTime) {maxAmps = maxAmps - 1; si (maxAmps < 0) maxAmps = 999; //check para el sobrevolar lcd.setCursor (13, 1); lcd.print(""); //clear valor anterior si (maxAmps > 99) lcd.setCursor (13, 1); else if (maxAmps > 9) lcd.setCursor (14, 1); lcd.setCursor otro (15, 1); //set cursor por consiguiente lcd.print (maxAmps); //write nuevo valor lastUpdate = millis(); {} //end si} //end if else btnDOWN} //end updateTrip void moveMotor() {si (leftlatch == HIGH) motorForward(255); //speed = 0-255 si (leftlatch == LOW) motorStop(); si (rightlatch == HIGH) motorBack(255); //speed = 0-255 si (rightlatch == baja) motorStop();} fin moveMotor void motorForward (int speeed) {mientras que (dontExtend == false & & leftlatch == HIGH) {//Serial.println ("movimiento remite"); digitalWrite (EnablePin, alto); analogWrite (PWMPinA, speeed); analogWrite (PWMPinB, 0) if motor //move (firstRun == true) delay(firstfeedbacktimedelay); más delay(feedbacktimedelay); //small demora para llegar a velocidad getFeedback() firstRun = false; latchButtons();} final mientras} //end motorForward void motorBack (int speeed) {mientras que (rightlatch == HIGH) {//Serial.println ("regresando") digitalWrite (EnablePin alta); analogWrite (PWMPinA, 0); analogWrite (PWMPinB, speeed); delay(3) motor //move; //small demora para llegar a currentTimefeedback la velocidad = millis() - lastfeedbacktime; if (firstRun == true & & currentTimefeedback > firstfeedbacktimedelay) getFeedback(); //if no ha tenido tiempo suficiente, hacer nada si (firstRun == false & & currentTimefeedback > feedbacktimedelay) getFeedback(); //if no ha sido suficiente , no firstRun = false; latchButtons(); } //end mientras dontExtend = false; } //end motorBack void motorStop() {analogWrite (PWMPinA, 0); analogWrite (PWMPinB, 0); digitalWrite (EnablePin, LOW); firstRun = true; //once ha detenido el motor, volver a habilitar firstRun a picos corriente de inicio} //end stopMotor void getFeedback() {CRaw = analogRead(CPin1); if (CRaw == 0 & & hitLimits < hitLimitsmaxback) hitLimits = hitLimits + 1; else if (CRaw == 0 & & hitLimits < hitLimitsmaxfront) hitLimits = hitLimits + 1; hitLimits otra cosa = 0; si (hitLimits == hitLimitsmaxback) {rightlatch = bajo;} final si si (hitLimits == hitLimitsmaxfront) {leftlatch = bajo; hitLimits = 0;} final si si (CRaw > maxAmps) {dontExtend = true; leftlatch = bajo;} terminar si printFeedback(); lastfeedbacktime = millis (); //store tiempo anterior para recibir retroalimentación} //end getFeedback void printFeedback() {lcd.setCursor (5, 1); lcd.print(""); Si (CRaw > 99) lcd.setCursor (5, 1); else if (CRaw > 9) lcd.setCursor (6, 1); Else lcd.setCursor (7, 1); LCD.Print(CRaw); } //end printFeedback			

          

Artículos Relacionados

Netduino GPS con pantalla LCD

Netduino GPS con pantalla LCD

ResumenEncontré una tarjeta Netduino V1 inusitada en mi caja de piezas, así que quería encontrar algo a que pude dedicar. Ya estaba conectado a una pantalla LCD de Nokia 5110 para un proyecto sin terminar antes. Encender, he encontrado que ambos esta
Regla ultrasónica con pantalla LCD y Arduino

Regla ultrasónica con pantalla LCD y Arduino

debeUna pantalla LCDUn Arduino Uno (tengo un escudo de ethernet en la mía, que no cualquier cosa en este proyecto, pero es un dolor para tomar encendido y apagado)Un módulo de Sensor de ultrasonidos20 - 30 cables de puenteEste es un proyecto bastante
Sensor de presión de Arduino (FSR) con pantalla LCD

Sensor de presión de Arduino (FSR) con pantalla LCD

Este instructable (esperemos) demostrar cómo construir un sensor de presión basados en Arduino que muestra la presión medida en una pantalla pequeña del LCD. Incorporé elementos, tanto de hardware como de software, de diversas fuentes (se proporciona
Regulador de función de múltiple de Arduino Mini con pantalla LCD

Regulador de función de múltiple de Arduino Mini con pantalla LCD

este instructivo se basa en el monitor de entorno Arduino mini y monitor de EEG de Arduino mini Instructables.Le permite controlar hasta 4 relés usando el tiempo, temperatura y/o luz, tu mente, o sensor de lo que le gustaría utilizar.Los ejemplos son
Cómo hacer una chaqueta de emoticono con pantalla LCD

Cómo hacer una chaqueta de emoticono con pantalla LCD

Concepto:Me gustaría hacer una chaqueta que tiene una pequeña pantalla de LCD para crear subtextos para la interacción humana interpersonal. El usuario utilizaría un limitada "teclado" con botones y sensores de fuerza bajo las teclas de silicona
Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

En este tutorial vamos a ver un uso distinto del módulo de ultrasonidos HC-SR04. Este módulo es de uso frecuente en coches de juguetes y robots para localizar obstáculos pero puede ser utilizado para medir distancias así.Distancias medidas por la HC-
Termómetro de interior con pantalla LCD y lectura de la "Analogía" con NeoPixels

Termómetro de interior con pantalla LCD y lectura de la "Analogía" con NeoPixels

¡ Hola! Este Instructable es un proyecto de Arduino de rápida, intermedio que tiene una temperatura de TMP36, lee en una pantalla LCD y le da una lectura de "Analogía" en un palo de neopixel eso cambios de color y el número de luces encendidas c
Arduino-Plaza con pantalla LCD de Color

Arduino-Plaza con pantalla LCD de Color

B-plazas es una plataforma de electrónica modular que permite a los usuarios crear, personalizar y actualizar continuamente sus propias aplicaciones de electrónica.En esta aplicación de B-plazas cubriremos cómo montar una sencilla aplicación de Color
Frambuesa Pi + Arduino Serial con pantalla LCD

Frambuesa Pi + Arduino Serial con pantalla LCD

IntroducciónEste es mi LCD de información frambuesa Pi, quería intentar y conseguir el Arduino y frambuesa Pi hablando entre sí a través de USB serial e hice este pequeño proyecto.El Raspberry Pi utiliza un script en python para obtener los datos y e
Portátil Arduino Uno temperatura y Sensor de humedad con pantalla LCD

Portátil Arduino Uno temperatura y Sensor de humedad con pantalla LCD

Hey todo el mundo. He conseguido un montón de grandes ideas de instructables sobre los años. Como este es mi primer ' ible, figura de compartir algo que yo hago así. Estoy entrando a esto en el completo espectro láser concurso 2016. Si tuviera que ga
Arduino Temp/humedad con pantalla LCD y la interfaz Web

Arduino Temp/humedad con pantalla LCD y la interfaz Web

recientemente ayudó al cliente moverse de su oficina que incluyó la creación de una nueva sala de informática.Yo quería que ser capaces de controlar la temperatura y la humedad de la habitación tanto marcando una pantalla LCD en la habitación y tambi
En red mochila LCD con pantalla LCD Smartie

En red mochila LCD con pantalla LCD Smartie

pantallas LCD de caracteres que desplazamiento de información son un mod de caja popular. Generalmente son controlados a través de un Puerto paralelo, mochila de puerto serieo mochila USB (más). Este Instructable muestra nuestra mochila de código abi
Sensor ultrasónico con pantalla LCD de

Sensor ultrasónico con pantalla LCD de

Hey los fabricantes,Este es mi primer instructables, lo siento si me lio hacia fuera con algo. Durante mucho tiempo he estado pensando de usando el sensor ultrasónico Distanciómetro y a mostrar sus lecturas en la pantalla LCD. Vine a través de muchos
Arduino Mega GPS con pantalla LCD y SD Registro

Arduino Mega GPS con pantalla LCD y SD Registro

Utilice su Audino Mega como un registrador de GPS con una pantalla de LCD clara y 5 botones de función. Un LED bicolor se utiliza para proporcionar información de estado.La SDcard puede ser dejado en y leer utilizando un bosquejo de lector de tarjeta