fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Contador con pantalla LCD

29 Respuestas
6 Usuarios
0 Reactions
10.1 K Visitas
inventipex
Respuestas: 18
Topic starter
(@inventipex)
Active Member
Registrado: hace 17 años

Muy buenas, compis.
Hacía tiempo que no me pasaba por aquí.

Necesito hacer un complemento para mi "Treball de Recerca".
Quiero hacer un contador con una pantalla LCD como esta ( http://www.msebilbao.com/tienda/product ... cts_id=308).
Su función sería mostrar en pantalla cuantas veces se ha pulsado un pulsador, y sumar esas veces.

Si la pantalla es de 4x20, por ejemplo, que ponga:

"
Cubos verdes: 1
Cubos azules: 3
Cubos amarillos: 0
Total: 4
"

Por poner un ejemplo.
Iría sumando un valor cada vez que se pulsase un pulsador (habría un pulsador para cada tipo de cubos).

Creeis que es posible hacer esto ? O es muy complicado ?

Se puede hacer-lo utilitzando un Boe-Bot (Parallax Basic) ?

Responder
28 respuestas
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 20 años

la única diferencia de usar 8 bits y 4 bits es que con el interface a 4 bits tienes que mandar primero una mitad y después otra mitad. con lo cual en 8 bits vas mas ligero.

Cada proyecto es un mundo lo ideal es ver que necesitas.

Responder
markknopfler
Respuestas: 28
(@markknopfler)
Eminent Member
Registrado: hace 16 años

Si, es que la primera vez no sabia que hablaban de usar la librería, si es el primer proyecto y lo unico que necesita es hacer andar el display lo mejor es la libreria sin duda.
Y con respecto a la velocidad si, es mas rapido con 8 bits, pero en realidad no hay demasiada diferencia... En mi robot siguelineas ( aun sin terminar) estoy usando un Shift register para mandar los caracteres en forma serial o sea que tardo mas de 18 veces lo que tardaria con un bus de 8 bits. y aun asi funciona bien, leyeno sensores y dando el PWM a los motores... y todo eso a 4MHz

Responder
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 20 años

TE adjunto el código que estoy usando en arduino:

//INICIO

digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, HIGH);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);

//CONFIGURACIÓN

digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, HIGH);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);
digitalWrite(rs, LOW);
digitalWrite(D7, HIGH);
digitalWrite(D6, LOW);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);

//ENCENDIDO

digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);
digitalWrite(rs, LOW);
digitalWrite(D7, HIGH);
digitalWrite(D6, HIGH);
digitalWrite(D5, HIGH);
digitalWrite(D4, HIGH);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);

//MODO

digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);
digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, HIGH);
digitalWrite(D5, HIGH);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);

//J

digitalWrite(rs, HIGH);
digitalWrite(D7, LOW);
digitalWrite(D6, HIGH);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(1);
digitalWrite(enable, HIGH);
delay(1);
digitalWrite(enable, LOW);
delay(2);
digitalWrite(rs, HIGH);
digitalWrite(D7, HIGH);
digitalWrite(D6, LOW);
digitalWrite(D5, HIGH);
digitalWrite(D4, LOW);
delay(1);
digitalWrite(enable, HIGH);
delay(1);
digitalWrite(enable, LOW);
delay(2);

//A

digitalWrite(rs, HIGH);
digitalWrite(D7, LOW);
digitalWrite(D6, HIGH);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(1);
digitalWrite(enable, HIGH);
delay(1);
digitalWrite(enable, LOW);
delay(2);
digitalWrite(rs, HIGH);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, LOW);
digitalWrite(D4, HIGH);
delay(1);
digitalWrite(enable, HIGH);
delay(1);
digitalWrite(enable, LOW);
delay(2);

Con solo 6 lineas

Responder
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 20 años

TE adjunto el código que estoy usando en arduino:

//INICIO

digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, HIGH);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);

//CONFIGURACIÓN

digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, HIGH);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);
digitalWrite(rs, LOW);
digitalWrite(D7, HIGH);
digitalWrite(D6, LOW);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);

//ENCENDIDO

digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);
digitalWrite(rs, LOW);
digitalWrite(D7, HIGH);
digitalWrite(D6, HIGH);
digitalWrite(D5, HIGH);
digitalWrite(D4, HIGH);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);

//MODO

digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);
digitalWrite(rs, LOW);
digitalWrite(D7, LOW);
digitalWrite(D6, HIGH);
digitalWrite(D5, HIGH);
digitalWrite(D4, LOW);
delay(2);
digitalWrite(enable, HIGH);
delay(2);
digitalWrite(enable, LOW);
delay(4);

//J

digitalWrite(rs, HIGH);
digitalWrite(D7, LOW);
digitalWrite(D6, HIGH);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(1);
digitalWrite(enable, HIGH);
delay(1);
digitalWrite(enable, LOW);
delay(2);
digitalWrite(rs, HIGH);
digitalWrite(D7, HIGH);
digitalWrite(D6, LOW);
digitalWrite(D5, HIGH);
digitalWrite(D4, LOW);
delay(1);
digitalWrite(enable, HIGH);
delay(1);
digitalWrite(enable, LOW);
delay(2);

//A

digitalWrite(rs, HIGH);
digitalWrite(D7, LOW);
digitalWrite(D6, HIGH);
digitalWrite(D5, LOW);
digitalWrite(D4, LOW);
delay(1);
digitalWrite(enable, HIGH);
delay(1);
digitalWrite(enable, LOW);
delay(2);
digitalWrite(rs, HIGH);
digitalWrite(D7, LOW);
digitalWrite(D6, LOW);
digitalWrite(D5, LOW);
digitalWrite(D4, HIGH);
delay(1);
digitalWrite(enable, HIGH);
delay(1);
digitalWrite(enable, LOW);
delay(2);

Con solo 6 lineas

Responder
inventipex
Respuestas: 18
Topic starter
(@inventipex)
Active Member
Registrado: hace 17 años

Gracias.
Entonces, entiendo que es mejor programarlo en CCS ? O en Adruino ?

Creo que estamos partiendo de una base que yo no tengo, o almenos eso creo, porque me estoy liando un poco... 😳

Cómo debo programarlo (es decir, si conecto el chip directamente al puerto paralelo o COM o si tengo que comprar algo más) ?
Un chip únicamente basta (como circuito) ?

Responder
Página 4 / 6
Compartir: