Bueno el proyecto no es de mi autoria, pero de ise unos cambios ya que no se si el puerto que ocupaba requería resistencia...
Mas tarde subiré un vídeo mostrando como quedo.
int ledPin = 13;
//led for visualization (use 13 for built-in led)
int speakerPin = 6;
//speaker connected to one of the PWM ports
#define c 261
#define d 294
#define e 329
#define f 349
#define g 391
#define gS 415
#define a 440
#define aS 455
#define b 466
#define cH 523
#define cSH 554
#define dH 587
#define dSH 622
#define eH 659
#define fH 698
#define fSH 740
#define gH 784
#define gSH 830
#define aH 880
//frequencies for the tones we're going to use
//used http://home.mit.bme.hu/~bako/tonecalc/tonecalc.htm to get these
void setup()
{
pinMode(ledPin, OUTPUT);
// sets the ledPin to be an output
pinMode(speakerPin, OUTPUT);
//sets the speakerPin to be an output
}
void loop() // run over and over again
{
march();
}
void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds)
{
digitalWrite(ledPin, HIGH);
//use led to visualize the notes being played
int x;
long delayAmount = (long)(1000000/frequencyInHertz);
long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
for (x=0;x<loopTime;x++)
{
digitalWrite(speakerPin,HIGH);
delayMicroseconds(delayAmount);
digitalWrite(speakerPin,LOW);
delayMicroseconds(delayAmount);
}
digitalWrite(ledPin, LOW);
//set led back to low
delay(20);
//a little delay to make all notes sound separate
}
void march()
{
//for the sheet music see:
//http://www.musicnotes.com/sheetmusic/mtd.asp?ppn=MN0016254
//this is just a translation of said sheet music to frequencies / time in ms
//used 500 ms for a quart note
beep(speakerPin, a, 500);
beep(speakerPin, a, 500);
beep(speakerPin, a, 500);
beep(speakerPin, f, 350);
beep(speakerPin, cH, 150);
beep(speakerPin, a, 500);
beep(speakerPin, f, 350);
beep(speakerPin, cH, 150);
beep(speakerPin, a, 1000);
//first bit
beep(speakerPin, eH, 500);
beep(speakerPin, eH, 500);
beep(speakerPin, eH, 500);
beep(speakerPin, fH, 350);
beep(speakerPin, cH, 150);
beep(speakerPin, gS, 500);
beep(speakerPin, f, 350);
beep(speakerPin, cH, 150);
beep(speakerPin, a, 1000);
//second bit...
beep(speakerPin, aH, 500);
beep(speakerPin, a, 350);
beep(speakerPin, a, 150);
beep(speakerPin, aH, 500);
beep(speakerPin, gSH, 250);
beep(speakerPin, gH, 250);
beep(speakerPin, fSH, 125);
beep(speakerPin, fH, 125);
beep(speakerPin, fSH, 250);
delay(250);
beep(speakerPin, aS, 250);
beep(speakerPin, dSH, 500);
beep(speakerPin, dH, 250);
beep(speakerPin, cSH, 250);
//start of the interesting bit
beep(speakerPin, cH, 125);
beep(speakerPin, b, 125);
beep(speakerPin, cH, 250);
delay(250);
beep(speakerPin, f, 125);
beep(speakerPin, gS, 500);
beep(speakerPin, f, 375);
beep(speakerPin, a, 125);
beep(speakerPin, cH, 500);
beep(speakerPin, a, 375);
beep(speakerPin, cH, 125);
beep(speakerPin, eH, 1000);
//more interesting stuff (this doesn't quite get it right somehow)
beep(speakerPin, aH, 500);
beep(speakerPin, a, 350);
beep(speakerPin, a, 150);
beep(speakerPin, aH, 500);
beep(speakerPin, gSH, 250);
beep(speakerPin, gH, 250);
beep(speakerPin, fSH, 125);
beep(speakerPin, fH, 125);
beep(speakerPin, fSH, 250);
delay(250);
beep(speakerPin, aS, 250);
beep(speakerPin, dSH, 500);
beep(speakerPin, dH, 250);
beep(speakerPin, cSH, 250);
//repeat... repeat
beep(speakerPin, cH, 125);
beep(speakerPin, b, 125);
beep(speakerPin, cH, 250);
delay(250);
beep(speakerPin, f, 250);
beep(speakerPin, gS, 500);
beep(speakerPin, f, 375);
beep(speakerPin, cH, 125);
beep(speakerPin, a, 500);
beep(speakerPin, f, 375);
beep(speakerPin, c, 125);
beep(speakerPin, a, 1000);
//and we're done \ó/
}
Fuente : https://gist.github.com
Busqueda: Placa Arduino Uno
Blog de tecnología del dia a dia que suele ocurrir en el soporte corporativo y algo mas.
lunes, 17 de diciembre de 2012
Arduino: Hola Mundo Led
Este el el programa mas simple para hacer con nuestro Arduino. Consiste en hacer que un led prenda y apague en determinados tiempos.
Se le ha agregado un adicional para que muestre el estatus en el monitor serial.
//------------------------------------
//Declara puertos de entradas y salidas
//------------------------------------
int ledPin = 13; // Declara el LED en el Pin 13
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Esta función corre cada vez que se
//inicia el Arduino
{
pinMode(ledPin, OUTPUT); // Inicializa el LED como una salida
Serial.begin(9600);
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
// cuando este energizado el Arduino
{
Serial.println("Led ON");
digitalWrite(ledPin, HIGH); // Enciende el LED
delay(100); // Temporiza un segundo (1s = 1000ms)
Serial.println("Led OFF");
digitalWrite(ledPin, LOW); // Apaga el LED
delay(3000); // Temporiza un segundo (1s = 1000ms)
}
Fuente : http://www.cosasdemecatronica.com
Se le ha agregado un adicional para que muestre el estatus en el monitor serial.
//------------------------------------
//Declara puertos de entradas y salidas
//------------------------------------
int ledPin = 13; // Declara el LED en el Pin 13
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Esta función corre cada vez que se
//inicia el Arduino
{
pinMode(ledPin, OUTPUT); // Inicializa el LED como una salida
Serial.begin(9600);
}
//------------------------------------
//Funcion ciclicla
//------------------------------------
void loop() // Esta funcion se mantiene ejecutando
// cuando este energizado el Arduino
{
Serial.println("Led ON");
digitalWrite(ledPin, HIGH); // Enciende el LED
delay(100); // Temporiza un segundo (1s = 1000ms)
Serial.println("Led OFF");
digitalWrite(ledPin, LOW); // Apaga el LED
delay(3000); // Temporiza un segundo (1s = 1000ms)
}
Fuente : http://www.cosasdemecatronica.com
Suscribirse a:
Entradas (Atom)