Remote control (9 / 17 paso)

Paso 9: El "Código" :)) remota de código

El código es bastante grande y va a ser muy difícil explicar y también fotos no ayuda: P
Los primeros intentos conseguí 99% microcontrolador memoria, el flash y el RAM, por lo que he aprendido a usar "programem" para escribir un int en EPROM, también conductor del LCD o biblioteca... y mucho más.

OK vamos a empezar con la pantalla Lcd.

Primera vez tienes que incluir la biblioteca #include. En la biblioteca hice una clase tan "estática PCF8814 lcd;" puede ser útil por lo que se puede utilizar como "lcd.print ("coche remoto")". Escribir la pantalla lcd arriba a los lados en el caso de instalación es algo parecido a este "lcd.begin(); LCD.Rotate(1);". La función de inicio comienza la pantalla lcd y definir los pines que uso de arduino para conect con pantalla lcd, así que si usted tiene que conectar en otros pins, consulte la PCF8814.h para asegurarse el orden de los pines pero creo que es así, de lcd.begin(13,11,12,10) por defecto; Rotate() con 1 vuelta la img en la pantalla lcd arriba a los lados y con 0 es normal.

puede imprimir con la secuencia lcd.print(); establecer el cursor con lcd.setCursor(y,x), y que la fila (1 fila = 8 píxeles) en esta pantalla usted tiene 8 hileras, primera fila es 0 y la última 7, y siendo el número de píxeles de izquierda a derecha; y usted puede hacer más pero usted verá más adelante.

Cómo leer las teclas analógicas.

int analogValue = analogRead(analogKeyPin); / / devuelve un valor dependiendo de qué botón push (solo ver los esquemas y tratar de pensar donde la corriente de flujo, tienes diferit rezistance en cada botón). se puede utilizar a serial monitor para leer ellos o la lcd.print(analogValue) para imprimir en la pantalla lcd, luego algunos if-s o switch/case y se realiza, por ejemplo.

 if (analogValue > 25 && analogValue < 40){ key = "meniu"; } 
 else if (analogValue > 40 && analogValue < 70){key = "back"; } 

He usado cadena almacenar la clave porque es más fácil al programa pero se puede utilizar un int para salvar a más memoria ram.

El problema mas grande que tuve fue las cuerdas para menius usé el programem para bloquear las cadenas en memoria flash. Así que hice un arreglo como este:

 prog_char meniu_0[] PROGMEM = "Obtions"; prog_char meniu_1[] PROGMEM = "Autoset"; prog_char meniu_2[] PROGMEM = "Stearing set"; 
 PROGMEM const char *meniu[] = { meniu_0,meniu_1, meniu_2 }; 

Generar de esta manera usted puede easyely los menius

 for (uint8_t x = 0; x < 7 ; x++){ // 7 is the number of option you have in menu, so stop the for at 6 poz lcd.setCursor(6, x); //read from progrmem strcpy_P(buffer, (char*)pgm_read_word(&(meniu[pozMeniu + x]))); lcd.print(buffer); } 

7 es el número de opción que tienen en el menú, así que el "para" 7 veces, luego set cursor al imprimir desde el primer row(0) con x como esta se pondrán a la siguiente fila cuando el prog hace la segunda vez el, empiezo a las opciones de impresión del píxel 6 porque de 0 a 6 llamo cursor. Ahora strcpy_P función copia la cadena de programen en un buffer que declaro con 50 caracteres es un poco demasiado pero tienes para asegurarse que es suficiente, después de que imprimir sólo el búfer.

 pgm_read_word(&(meniu[pozMeniu + x])) 

Esto lee el valor menú programem array [0], si la pozMeniu y x es "0". Uso pozMeniu porque cuando pongo el cursor y quiero navegar hacia arriba y hacia abajo y vamos a decir tengo 10 obtions una a 7 filas, cuando voy con el cursor en la opción 7 y quiero ir downer sólo hará pozMeniu = 1 este se imprimirá a partir de la segunda opción y en la fila 7 tengo la opción 8. Para eso hice una pequeña función que necesita un parámetro, el número de obtions. Así que para el último ejemplo es "upDown_navigate(6);" (también empezar a contar con "0"). Si descargas el código tengo la función allí, explicó.

La upDown_navigate(); también devuelve un "pozCursor" que va a cambiar cuando vas hacia arriba y hacia abajo así que usted puede imprimir un cursor así:

 lcd.setCursor(0, pozCursor); 
 lcd.print("\2"); 

El "2" es el segundo char que lo defino. es el cursor que una estaba diciendo. Sí, usted puede Agregar a caracteres personalizados, verás en el enlace con todo el código.

Si quieres hacer un sub menu puede hacerlo así (es solo una idea, he hecho esta):

"nivel" - esta i se usa en el void loop() para ir a una pantalla específica (tienen la función para cada menú)
"countUpDown" - Esto es generada por upDown_navigate(), guarda la posición en la matriz (ya sabéis qué obtion selecciona)

 <p>if (key == "ok"){ switch (countUpDown) { case 0: level = 2; countUpDown = 0; pozCursor = 0; pozMeniu = 0; lcd.clear(); break; case 1: level = 3; countUpDown = 0; pozCursor = 0; pozMeniu = 0; lcd.clear(); break; case 2: level = 4; countUpDown = 0; pozCursor = 0; pozMeniu = 0; lcd.clear(); break; 

Artículos Relacionados

Remote Controlled Arduino Car

Remote Controlled Arduino Car

Siempre me gustó ir a campamentos, etc. donde hay muchos de mis amigos, siempre me ha gustado tener muchos amigos y un día como estaba buscando por youtube para control remoto de coches, y cómo se hacían, me di cuenta que podía hacer uno para mi de l
Instalar y configurar Linux Infrared Remote Control (LIRC) Daemon

Instalar y configurar Linux Infrared Remote Control (LIRC) Daemon

IntroducciónDemonio LIRC decodifica señales infrarrojas (IR). Al recibir una señal de infrarrojos, el daemon genera un Suceso específico de LIRC. Clientes como irexec daemon y XBMC/KODI estos eventos LIRC y responden en consecuencia.Ámbito de aplicac
Tiras de LED de Phone Remote-Controlled inalámbrico: RasPi con conductor Fadecandy con WS2811/WS2812 direccionable LED tiras con TouchOSC Smartphone App con el Iphone o el Droid

Tiras de LED de Phone Remote-Controlled inalámbrico: RasPi con conductor Fadecandy con WS2811/WS2812 direccionable LED tiras con TouchOSC Smartphone App con el Iphone o el Droid

Aquí va un resumen de diseño cada vez más amplia de mi último proyecto. A continuación, un vídeo que he subido mostrando algunas funciones:La progresión de la idea original fue algo como lo siguiente:Tira de LED direccionable (s siempre queremos más
La cosquillita de nariz estornuda-Ray Remote-Controlled

La cosquillita de nariz estornuda-Ray Remote-Controlled

¿Sabe usted que edad esposas ' cuento sobre cómo al estornudar, que significa alguien está pensando? Al parecer, la mayoría de la gente no. No darse cuenta que, así que hice este proyecto. :)Recientemente le di mi primer demo como fabricante de promo
Arduino semáforo regulador w/Remote Control

Arduino semáforo regulador w/Remote Control

tuve un semáforo que yo estaba acabado.  La izquierda lo único que hacer era construir el controlador para los patrones de señal de la luz.  Para darle un toque incorporé un control remoto.  También fue la oportunidad perfecta para poder probar un Ar
Lego Technic Remote Control Off Roader Version 2

Lego Technic Remote Control Off Roader Version 2

Como prometió, su finalmente aquí. El carro de lego azul off roader V2!TheFoofinator ya modificado originalmente el camión todoterreno technic lego azul (número 8435), con funciones de la energía del conjunto de bulldozer, para permitir el control re
Instalar Linux Infrared Remote Control (LIRC) paquete

Instalar Linux Infrared Remote Control (LIRC) paquete

IntroducciónControl remoto infrarrojo de Linux (LIRC) es un conjunto de programas que controla el hardware de interfaz de infrarrojos de la Raspberry Pi. El paquete debian de lirc proporciona un número de programas:IRcat - cadenas de impresión pulsan
Pantalla táctil barra de sonido IR Remote Control

Pantalla táctil barra de sonido IR Remote Control

Mi hijo tiene Cambridge Audio Sound bar con un control remoto perro masticado! Lo dicho quisiera probar y hacer un control remoto nuevo!He probado este instructable (encendido-apagado y silencio) en mi TV Samsung y funciona bien, todavía tengo que pr
Verificar y depurar Linux Infrared Remote Control (LIRC) demonio configuraciones

Verificar y depurar Linux Infrared Remote Control (LIRC) demonio configuraciones

IntroducciónDespués el demonio LIRC capacitación para reconocer las señales de mi unidad de control remoto de infrarrojos (IR) y configurar cliente LIRC para responder en consecuencia a veces cosas no ocurren como se esperaba cuando hace clic en la u
Aplicación Remote Control del ventilador

Aplicación Remote Control del ventilador

Se trata de una aplicación android que hice para controlar mi ventilador. Guardados de perder el control para él, así que pensé en hacer una aplicación, ya que casi nunca pierdo mi teléfono. Lo siguiente podría ser uso control nada del teléfono que t
Knex Remote control 4WD "Off Roadster"

Knex Remote control 4WD "Off Roadster"

Hola soy nuevo con este KVG de R/C coche. Voy a publicar suficientes fotos para ustedes chicos y chicas publicarlo así que si usted quiere construir, mod, o mejorarlo ir adelante, me encantaría ver lo que puede hacer que! Algunas de las característic
Control remoto vía GSM/GPRS SMS(Arduino)

Control remoto vía GSM/GPRS SMS(Arduino)

control remoto, especialmente cuando este no ethernet o Wifi en el exterior, ha sido una cosas muy profundas en el pasado. Cuando era un niño, siempre imagen que yo tengo un equipo que puede controlar todos los electrodomésticos. Ahora, esto se convi
Steampunk Retro Control de remoto (también conocido como ' el ladrillo')

Steampunk Retro Control de remoto (también conocido como ' el ladrillo')

Más mandos a distancia más o menos el mismo aspecto, sirven un propósito... podrían ser demasiado buena.  Esto es para mi sistema de sonido Steampunk.  No he visto ningún mando de steampunk en la web (googlear 'steampunk remote control' - virtual exi
Controlar tus amigos usando el poder de la neurociencia (Control remoto humano parte II)

Controlar tus amigos usando el poder de la neurociencia (Control remoto humano parte II)

En este Instructable, usaremos una unidad Mindwave Mobile EEG (electroencefalograma), un fiel Arduino UNO, un TENS (estimulación eléctrica transcutánea del nervio) unidad y un simple relé para controlar remotamente un súbdito humano con nuestras ment