Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Placa funcionando.....
nqGq3FV4NyI
Genial, el montaje bien salvo algunos agujeros demasiado pequeños para mi soldador, problema que con algo de pericia se soluciona... los condensadores del Xtal que los he puesto en la parte de abajo por que son dificiles de ubicar debajo del zocalo aunque es totalmente posible si en la tienda te los venden de los pequeñitos... 🙂 ... por lo demas genial, un patoso como yo en menos de una hora todo soldado correctamente.
La instalación del software pensaba que iba a ser bastante traumática y me he equivocado, evidentemente son muchas cosas y hay que dedicarle su tiempo, pero una vez hecho no es para cortarse las venas, de todos modos para vagos he dejado el proceso de instalación para windows pasito a pasito en mi web http://www.xbot.es/blog/?cat=22 " onclick="window.open(this.href);return false;
cuando tenga un rato meto un copy & paste en la wiki de ARDE.
Saludos.
furri.
ok, email enviado
alguien mas quiere alguna? me sobran unas 25
saludos
yo esperaré a que lleguen las que pedí y después veré si se me hacen pocas y quiero mas...
que nunca están de más unas cuantas placas pinguino... 😀
Hola yo y un amigo compramos unas placas de estas. Yo monté de momento solo una pero tengo el siguiente problema, a ver si a alguien más le pasa.
Colgué un vídeo en youtube con el problema, vale más que mil palabras.
El código es el de ejemplo que viene en pinguino beta 9-05 llamado lcd.pde sin haber modificado nada.
/*
* LCD routines for use with pinguino board, based on LiquidCrystal lib from Arduino project.
* By Marcus Fazzi (Anunakin)
* Pins, Schematics and more info:
* http://pinguino.koocotte.org/index.php/LCD_Example
* http://anunakin.blogspot.com/2010/08/pinguino-clock.html
*/
// Comment line above if you using a pinguino with PIC18F2550.
//#define PIC18F4550
#define LED 13
#define HOUR 14
#define MIN 15
//global vars
uchar counter = 0;
uchar sec = 0;
uchar min = 0;
uchar hour = 0;
float num;
void setup(){
//8 bits mode
//lcd(8, 9, 0, 1, 2, 3, 4, 5, 6, 7); // RS, E, D0 ~ D7
//4 bits mode, dont use last four pins ...
lcd(8, 9, 0, 1, 2, 3, 0, 0, 0, 0); // RS, E, D4 ~ D8
//LCD format
lcd.begin(2, 0);
/* Debug */
pinMode(LED, OUTPUT); // LED on pin 13
//Setup buttons
pinMode(HOUR, INPUT);
pinMode(MIN, INPUT);
}
void loop()
{
// Output string
lcd.home();
lcd.print("Pinguino-LCDlib"); // Output char
if (counter>9){
counter = 0;
sec++;
}
if (sec>59){
sec = 0;
min++;
}
if (min>59){
min = 0;
hour++;
}
if (hour>23){
hour = 0;
}
lcd.setCursor(0, 1);
if (hour < 10)
lcd.print("0");
lcd.printNumber(hour, 10);
if (min < 10)
lcd.print(":0");
else
lcd.print(":");
lcd.printNumber(min, 10);
if (sec < 10)
lcd.print(":0");
else
lcd.print(":");
lcd.printNumber(sec, 10);
//set hour and min
if(digitalRead(HOUR)){
hour++;
}
if(digitalRead(MIN)){
min++;
}
counter++;
delay(51); //just a fine tune to get 100ms with this!
digitalWrite(LED, LOW);
delay(51);
digitalWrite(LED, HIGH);
}
El contador van más rápido las horas que los segundos, de hecho cambiando los delay para que valla muy lento, se puede ver como horas y minutos aumentan 1 cada loop, y segundos aumenta 1 cada 10 loop (cada counter=10).
Ni idea de que puede pasar, soy novato con pinguino y no me entero.
Por otra parte, porque ese código no trae #include?? es algo automatico o que?.
Yo si hago un código a mano me da error de user.c (archivo en la carpeta source) y si copio alguno de internet que funciona, lo mismo pero en main.c
Os copio el error:
C:pinguino_beta9-05_windowssourcemain.c:96: syntax error: token -> '_interrupt' ; column 39
C:pinguino_beta9-05_windowssourcemain.c:140: warning 197: keyword 'interrupt' is deprecated, use '__interrupt' instead
y si, es cierto que en el main.c pone la palabra interrupt, parece que reservada. No se si es como en los 8051, que después de la palabra interrupt debería aparecer el número de interrupcion.
y el vídeo para la primera pregunta:
JyGYtezoFmY
Muchísimas gracias por vuestra ayuda. Por cierto la placa está genial, de buena calidad y muy bien trabajada. Da un gusto soldar los componentes con el metalizado ese dorado de los pines.
El problema parece coincidir con este trozo de codigo, para comprobar si es de aqui simplemente quita esas lineas y ejecuta el programa sin ellas, si es asi para solucionar el problema revisa el circuito fisico a ver si estos pines los tienes a pull-up y llevan logica inversa.
furri.
//set hour and min
if(digitalRead(HOUR)){
hour++;
}
if(digitalRead(MIN)){
min++;
}
El problema parece coincidir con este trozo de codigo, para comprobar si es de aqui simplemente quita esas lineas y ejecuta el programa sin ellas, si es asi para solucionar el problema revisa el circuito fisico a ver si estos pines los tienes a pull-up y llevan logica inversa.
furri.
//set hour and min
if(digitalRead(HOUR)){
hour++;
}
if(digitalRead(MIN)){
min++;
}
Claro claro, ahora entiendo lo que pasaba. Es que esos dos botones no los tenía conectados (para probar solamente si funcionaba) y entonces el pic se debía confundir, y pensaba que estaban siempre activados.
Muchas gracias, ahora además de solucionado lo del contador ya se algo mas.
Por otra parte, lo de que la pantalla empieza a hacer cosas sigue pasando, parece que menos... pero no se. Puede ser cosa del lcd o de algún contacto o ruido en masa o vcc.
Muchas gracias por tu ÚTIL respuesta.
No se si es el lugar, pero dejo un programa que hice con un ldr para probar el lcd y el ldr (es una tontería) pero por algo se empieza:
// luxometro hecho por guaifi, libre distribución.
/*
VCC---LDR---POT 1K-----GND //pot 1k it depends on the value of ldr and adjust
|
|
PORT 13
RW---|
|
VEE--o--1K---GND //conect R/W with Vee, and both with 1k resistor to gnd.
*/
char ldr;
int valor;
void setup()
{
ldr=13;
lcd(8, 9, 0, 1, 2, 3, 0, 0, 0, 0); // RS, E, D4 ~ D8
//LCD format
lcd.begin(2, 0);
}
void loop()
{
lcd.setCursor(0,1);
lcd.print(" ");
lcd.home();
lcd.print("Sensor radiacion");
valor=analogRead(ldr);
lcd.setCursor(0,1);
lcd.printNumber(valor,10);
lcd.setCursor(5,1);
lcd.print("fotones");
delay(500); //all as you want.
}