Hola Joseb,te da error porque esta preparado para el MEGA los pines 22,23 y 24 son rx,tx y salida de 1khz
este es el original para el uno:
//Generador de frecuencias con AD9850
//Joaquín Paredes. Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.. 2012.
#include <Wire.h>
#include "Keypad.h"
#include <AH_AD9850.h>
//#include <AD9850.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // set the LCD address to 0x27
AH_AD9850 AD9850(10, 11, 12, 13);
const byte ROWS = 4; //cuatro rows
const byte COLS = 4; //cuatro columnas
char keys[ROWS][COLS] =
{{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};
byte rowPins[ROWS] = { 2, 3, 4, 5}; //connectar filas a pin del Arduino
byte colPins[COLS] = { 6, 7, 8, 9}; //connectar columnas a pin del Arduino
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
int NuMax; //limitar a 8 digitos la frecuencia
String teclas; //tecla que se va pulsando y su concatenación
char cadena[9]; //para poder hacer la conversion a número
long frecuencia; //f a mostrar
char key[1]; //captura tecla
void setup()
{
//lcd.init(); // initialize the lcd
lcd.begin(16,2);// Indicamos medidas de LCD
NuMax = 0;
lcd.blink();
lcd.print("INPUT FRECUENCY");
lcd.setCursor(0,1);
lcd.print("1Hz to 30MHz + #");
delay(4000);
lcd.clear();
}
void loop()
{
// AD9850.set_frequency(0,0,1000);
leerKeypad();
}
void leerKeypad()
{
char key = keypad.getKey();
if (key != NO_KEY){
if (NuMax < 9) {
switch (key) {
case '1':
teclas = (teclas + "1");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '2':
teclas = (teclas + "2");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '3':
teclas = (teclas + "3");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '4':
teclas = (teclas + "4");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '5':
teclas = (teclas + "5");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '6':
teclas = (teclas + "6");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '7':
teclas = (teclas + "7");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '8':
teclas = (teclas + "8");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '9':
teclas = (teclas + "9");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
case '0':
teclas = (teclas + "0");
lcd.setCursor(0,0);
lcd.print(teclas);
NuMax ++;
delay(150);
break;
}
}
switch (key) {
case '*':
teclas = "";
lcd.clear();
lcd.blink();
lcd.print("INPUT FRECUENCY");
lcd.setCursor(0,1);
lcd.print("1Hz to 30MHz $ #");
delay(2000);
lcd.clear();
NuMax = 0;
teclas = "";
delay(150);
break;
case '#':
delay(150);
teclas.toCharArray(cadena,9);
frecuencia=atol (cadena); // convierte cadenas tipo string a numero
AD9850.set_frequency(frecuencia);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(frecuencia);
lcd.print(" Hz");
teclas = "";
NuMax = 0;
break;
case 'A':
lcd.clear();
lcd.setCursor(0,0);
lcd.print("1000 Hz");
AD9850.set_frequency(1000);
teclas = "";
NuMax = 0;
delay(150); // debounce
break;
case 'B':
delay(150); // debounce
lcd.clear();
lcd.setCursor(0,0);
lcd.print("10000 Hz");
AD9850.set_frequency(10000);
teclas = "";
NuMax = 0;
break;
case 'C':
delay(150); // debounce
lcd.clear();
lcd.setCursor(0,0);
lcd.print("100000 Hz");
AD9850.set_frequency(100000);
teclas = "";
NuMax = 0;
break;
case 'D':
delay(150); // debounce
lcd.clear();
lcd.setCursor(0,0);
lcd.print("1000000 Hz");
AD9850.set_frequency(1000000);
teclas = "";
NuMax = 0;
break;}
}
}