Me llego hace tiempo una Shield LCD para Arduino, solo es una pantalla con unos botones, no tiene mucho misterio aunque si quiero publicarlo porque se me hizo algo complicado encontrar los pines exactos que usaba esta pantalla para funcionar, así que los publico y lo tendré de chuleta en el blog!
Se trata de una Shield LCD imitación de la DFRobot, para funcionar emplea 6 pines digitales para la pantalla y 1 pin analógico para los botones, concretamente los pines: 4, 5, 6, 7, 8 y 9, y el A0 respectivamente. Adjunto un ejemplo en el que se muestra el tiempo que lleva encendido el Arduino en la primera linea de la pantalla, y el botón que se pulsa en la segunda linea.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 5, 6, 7); char btn; void setup() { lcd.begin(16, 2); lcd.print("Hello, world!"); delay(1500); lcd.clear(); } void loop() { btn = readButton(); if( btn != '#' ) lcd.clear(); lcd.setCursor(0, 0); lcd.print("Time: "); lcd.print(millis()/1000); lcd.setCursor(0, 1); switch( btn ) { case 'U': lcd.print("Up"); break; case 'R': lcd.print("Rigth"); break; case 'D': lcd.print("Down"); break; case 'L': lcd.print("Left"); break; case 'S': lcd.print("Start"); break; } } char readButton() { int val = analogRead(0); char result = '#'; if( val < 50 ) result = 'R'; else if( val < 250 ) result = 'U'; else if( val < 450 ) result = 'D'; else if( val < 650 ) result = 'L'; else if( val < 850 ) result = 'S'; return result; } |
Hola. De nuevo llego a tu blog y esta vez para preguntarte una cosa. Si pongo la shield sobre un UNO, como puedo aprovechar una salida PWM para dimmear un led?
Hola David,
Las shields de LCD de este tipo no están preparadas para eso, tendrías que modificar la placa y conectar el LED, quizás con un transistor, a un pin PWM.
Saludos.
Quizás no me he explicado. Me refería que, según tengo entendido las salidas PWM del Arduino UNO son los pines 11, 10, 9, 6, 5 y 3.
Yo necesito una para dimear, con un transistor, una tira de leds. Pero si tengo la shield encima ¿Como puedo acceder a algún pin del Arduino UNO de PWM? Desueldo uno de shield o como hago? soy muy novato.
Gracias de nuevo.
Entendí que querías regular el brillo de la pantalla.
Si lo que quieres hacer es usar el resto de pines que no se usan (se usan el 4, 5, 6, 7, 8 y 9 y A0 para esta shield LCD), entonces puedes soldar el cable encima directamente o entre medio del Arduino y el LCD poner una shield de prototipado y hacer ahí las conexiones.
Saludos.
ok, gracias…
¿Alguna vez has analizado el código de las pantallas LCD que usan las impresoras 3D Prusa i3? ¿Dónde podría encontrar ese código? Gracias.
Hola, en el código fuente del firmware tienes el código, sólo tienes que abrir los ficheros con un editor de texto.
Saludos.