Hola amigos,
Los útimos días he estado trasteando con el soft de Arduino y Atmega32.. el fin de hacer esto es aprovechar las muchas librerias que tiene el arduino para usarlos con mis queridos atmega...
He seguido el tutorial en este link:
http://www.instructables.com/id/Using-Atmega32-with-Arduino-IDE/?lang=es
Y me ha funcionado todo a la primera!!... o, al menos eso pensaba... he podido compilar y hacer funcionar un LCD display 16x2 y un Teclado Matricial, tanto en simulación como en físico con oscilador interno a 1MHZ y a 8MHZ y puedo dar fe que si funciona; sin embargo al intentar hacerlo a 16MHZ (con cristal externo) el display no me funciona correctamente... He buscado los posibles errores en el programa y también variado la configuración de fusibles sin poder encontrar absolutamente nada...
He podido revisar la libreria LiquidCrystal.h de arduino y aún no me figuro donde podría haber un error, y quisiera que pudieran ayudarme a encontrar el mismo.
El programa en cuestión es este:
...
Los útimos días he estado trasteando con el soft de Arduino y Atmega32.. el fin de hacer esto es aprovechar las muchas librerias que tiene el arduino para usarlos con mis queridos atmega...
He seguido el tutorial en este link:
http://www.instructables.com/id/Using-Atmega32-with-Arduino-IDE/?lang=es
Y me ha funcionado todo a la primera!!... o, al menos eso pensaba... he podido compilar y hacer funcionar un LCD display 16x2 y un Teclado Matricial, tanto en simulación como en físico con oscilador interno a 1MHZ y a 8MHZ y puedo dar fe que si funciona; sin embargo al intentar hacerlo a 16MHZ (con cristal externo) el display no me funciona correctamente... He buscado los posibles errores en el programa y también variado la configuración de fusibles sin poder encontrar absolutamente nada...
He podido revisar la libreria LiquidCrystal.h de arduino y aún no me figuro donde podría haber un error, y quisiera que pudieran ayudarme a encontrar el mismo.
El programa en cuestión es este:
Código:
// include the library code:
#include <LiquidCrystal.h>
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
{
\'1\',\'2\',\'3\' }
,
{
\'4\',\'5\',\'6\' }
,
{
\'7\',\'8\',\'9\' }
,
{
\'#\',\'0\',\'*\' }
};
byte rowPins[ROWS] = {
20, 19, 18, 17}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {
23, 22, 21}; //connect to the column pinouts of the keypad
Keypad teclas = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(30, 28, 27, 26, 25, 24);
void setup() {
// set up the LCD\'s number of columns and rows:
lcd.begin(16, 2);
lcd.print("LCD OK"); //mensaje Inicial
}
void loop() {
char option;
lcd.print("Opcion?");
do
option = teclas.getKey(); //verifica si hay algo pulsado y pasa
while(option==NO_KEY);
//lcd.clear();
lcd.print(option);
delay(500);
lcd.clear();
}