fbpx

Expresate

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

pingüino con lcd
 
Avisos
Vaciar todo

pingüino con lcd

13 Respuestas
5 Usuarios
0 Reactions
17.3 K Visitas
residente
Respuestas: 213
Topic starter
(@residente)
Estimable Member
Registrado: hace 19 años

Hola, estoy probando un programa sencillo para familiarizarme con pingüino, pero no consigo que vaya bien, seguro es alguna tontería que por lo oxidado que estoy no me doy cuenta.
En el programa solo quiero mostrar las veces que le doy al pulsador, pero solo veo caracteres raros con este programa.
#define LCD_RS 8
#define LCD_E 9
#define led 14
#define entrada 13

void lcdPulseEnable() {
digitalWrite(LCD_E, HIGH);
delayMicroseconds(1);
digitalWrite(LCD_E, LOW);
delayMicroseconds(1);
}

void lcdWriteNibble(uchar c){
int i;
for(i=0; i<4; i++){
digitalWrite(4+i, (c >> i) & 0x01);
}
lcdPulseEnable();
}

void lcdWriteByte(uchar c, int mode) {
digitalWrite(LCD_RS, mode);
lcdWriteNibble(c >> 4);
lcdWriteNibble(c);
}

void lcdSendControl(uchar c) {
lcdWriteByte(c, LOW);
}

void lcdSendData(uchar c) {
lcdWriteByte(c, HIGH);
}

void lcdSetAddress(uchar line, uchar column) {
lcdSendControl( 0x80 + 0x40 * (line - 1) + (column - 1));
}

void lcdPrint(char *string) {
int i;
for( i=0; string; i++) {
lcdSendData(string);
}
}

void lcdInit() {
int i;

pinMode(LCD_E, OUTPUT);
digitalWrite(LCD_E, LOW);
pinMode(LCD_RS, OUTPUT);
digitalWrite(LCD_RS, LOW);
for(i = 4; i < 8; i++) {
pinMode(i, OUTPUT);
}
delay(20);
lcdWriteNibble(0x03);
delayMicroseconds(1);
lcdWriteNibble(0x03);
delayMicroseconds(1);
lcdWriteNibble(0x02);
delayMicroseconds(200);
lcdSendControl(0x28); // 4 Bit, 2 Lines
delayMicroseconds(1);
lcdSendControl(0x0C); // Display On
delayMicroseconds(1);
lcdSendControl(0x01); // Clear display
delay(2);
lcdSendControl(0x02); // Cursor home
delay(2);
}

void setup() {
lcdInit();
pinMode(13,INPUT);
pinMode(14,OUTPUT);
}

void loop() {

int j=0;
int dato=0;

lcdSetAddress(1, 1);
lcdPrint("GMZ010");
lcdSetAddress(2, 1);
lcdPrint(dato);

if (digitalRead(entrada)){
digitalWrite(led,HIGH);

}
else
digitalWrite(led,LOW);{
j++;
dato=j;
}

}

Espero vuestra ayuda.Gracias.

Responder
12 respuestas
residente
Respuestas: 213
Topic starter
(@residente)
Estimable Member
Registrado: hace 19 años

Para hacer una variable con solo los valores 0 y 1, ¿como es? he probado con bit, bool, boolean y nada, siempre me da error.
¿Hay algún sitio donde pueda mirar todas estas cosillas para no tener que estar molestando?
Gracias.

Responder
sphinx
Respuestas: 651
(@sphinx)
Ardero
Registrado: hace 17 años

Hola de nuevo,

El sitio oficial de pinguino es este : http://www.pinguino.cc " onclick="window.open(this.href);return false;
Para las funciones, tipos de datos, etc... ves a la wiki: wiki.pinguino.cc
En concreto lo que buscas es esto: http://wiki.pinguino.cc/index.php/Data_types " onclick="window.open(this.href);return false;

Pero aunque ahí está listado el tipo bool, creo que no está implementado o había alguna razón por lo que no funcionaba aún.

Te aconsejo que uses el tipo char.

saludos,
Sphinx,

Responder
residente
Respuestas: 213
Topic starter
(@residente)
Estimable Member
Registrado: hace 19 años

Gracias Sphinx por los enlaces, ya les había echado un vistazo, pero por eso pregunte, ya que en ningún sitio de esos encontré la respuesta.
creo que no está implementado o había alguna razón por lo que no funcionaba aún.
Pues tiene que ser eso entonces, usare el char como dices.
Un saludo.

Responder
Página 3 / 3
Compartir: