Erről beszéltem, amikor azt mondtam, hogy van variáció.
Kód: Egész kijelölése
/*
Pistike morzéül
*/
#define END 0x80
#define TI(a) (a >> 1)
#define TA(a) ((a >> 1) | 0x80 )
#define MORSE_P TI(TA(TA(TI(END))))
#define MORSE_I TI(TI(END))
#define MORSE_S TI(TI(TI(END)))
#define MORSE_T TA(END)
#define MORSE_K TA(TI(TA(END)))
#define MORSE_E TI(END)
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
void play(uint8_t code) {
while( code != END )
{
digitalWrite(led, HIGH);
delay(( code & 0x80 ) ? 1000 : 500);
digitalWrite(led, LOW);
delay(200);
code <<= 1;
}
delay(2000);
}
char text[] = { MORSE_P, MORSE_I, MORSE_S, MORSE_T, MORSE_I, MORSE_K, MORSE_E, 0 };
// the loop routine runs over and over again forever:
void loop() {
char *letter = text;
while( *letter )
play(*(letter++));
delay(4000);
}