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
13.1 K Visitas
inventipex
Respuestas: 18
Topic starter
(@inventipex)
Active Member
Registrado: hace 18 años
[#2256]

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 21 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 18 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 21 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 21 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 18 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: