Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
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) ?
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.
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
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
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
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) ?