

Robert írta:fodor99:
Csak egy észrevétel:
- nagyon sok alprogramra bontod szét. Később ez gond lehet, mivel itt nem megy a RAM bővítése, mint PC esetén...
A későbbi leckékben lesz szó a buffertúlcsordulásról, memóriaínségről...
BraskoS írta:Sziasztok!
Az én SOS házifeladat megoldásom:Kód: Egész kijelölése
/*
SOS jelzés a 13-as lábon
A Morse időzítése:
Rövid (ti): 1 egység
Hosszú (tá): 3 egység
Betün belüli szünet a jelek között: 1 egység
Betük közti szünet: 3 egység
Szavak közti szünet: 7 egység
10 WPM (Word Per Minute) sebesség esetén 1 egység = 120ms
*/
void setup() {
pinMode(13, OUTPUT); // a 13 láb beállítása kimenetnek!
}
void loop() {
// az S betű kivilogtatása
digitalWrite(13, HIGH); // LED bekapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, LOW); // LED kikapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, HIGH); // LED bekapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, LOW); // LED kikapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, HIGH); // LED bekapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, LOW); // LED kikapcsol
delay(360); // betük közti 3 egységnyi várakozás
// az O betű kivilogtatása
digitalWrite(13, HIGH); // LED bekapcsol
delay(360); // 3 egységnyi várakozás
digitalWrite(13, LOW); // LED kikapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, HIGH); // LED bekapcsol
delay(360); // 3 egységnyi várakozás
digitalWrite(13, LOW); // LED kikapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, HIGH); // LED bekapcsol
delay(360); // 3 egységnyi várakozás
digitalWrite(13, LOW); // LED kikapcsol
delay(360); // betük közti 3 egységnyi várakozás
// az S betű kivilogtatása
digitalWrite(13, HIGH); // LED bekapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, LOW); // LED kikapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, HIGH); // LED bekapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, LOW); // LED kikapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, HIGH); // LED bekapcsol
delay(120); // 1 egységnyi várakozás
digitalWrite(13, LOW); // LED kikapcsol
delay(840); // szó végi 7 egységnyi várakozás
}
Kód: Egész kijelölése
int lighttime[9] = {100,100,100,1000,1000,1000,100,100,100};
int waittime[9] = {200,200,500,200,200,500,200,200,2000};
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(13, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
for(int i=0;i<9;i++)
{
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(lighttime[i]); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(waittime[i]); // wait for a second
}
}
Kód: Egész kijelölése
int time[18] = {100,200,100,200,100,500,1000,200,1000,200,1000,500,100,200,100,200,100,2000};
boolean led = 1;
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
for(int i=0;i<18;i++)
{
digitalWrite(13, led);
delay(time[i]);
led=!led;
}
}
Kód: Egész kijelölése
byte time[18] = {1,2,1,2,1,5,10,2,10,2,10,5,1,2,1,2,1,20};
boolean led = 1;
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
for(int i=0;i<18;i++)
{
digitalWrite(13, led);
delay(time[i]*100);
led=!led;
}
}
Kód: Egész kijelölése
' SOS.bas
$regfile = "m328def.dat" 'MCU header
$crystal = 16000000 'Kristály Frekvencia
' Vermek beállítása
$hwstack=40
$swstack=16
$framesize=32
' Változók létrehozása
Dim Times(18) As Word 'Tömb az időzítéshez.
Dim Led As Bit ' LED kimenet állapota
Dim I As Byte 'Ciklusszámláló
' Kezdő értékek feltöltése
Times(1) = 100
Times(2) = 200
Times(3) = 100
Times(4) = 200
Times(5) = 100
Times(6) = 500
Times(7) = 1000
Times(8) = 200
Times(9) = 1000
Times(10) = 200
Times(11) = 1000
Times(12) = 500
Times(13) = 100
Times(14) = 200
Times(15) = 100
Times(16) = 200
Times(17) = 100
Times(18) = 2000
Led = 1
'Setup
Config Pinb.5 = Output 'pinMode(13, OUTPUT)
' Fö program hurok
Do
For I = 1 To 18
Pinb.5 = Led 'LED kimenet írása
Waitms Times(i) 'Várakozás miliSec
Toggle Led 'Led állapot váltás
Next I
Loop
End 'end program
' Az egész területfoglalás: 556 BYTES !
Vissza: “60 nap alatt Arduino - Házi feladatok”
Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 0 vendég