Ich habe zwei Fragen bezüglich des Codes unten. Zunächst verstehe ich, dass dieser Code schrecklich ist und reduziert und verbessert werden kann. Ich möchte in der Lage sein, das ganze Alphabet und die Zahlen hinzuzufügen, aber jeden einzelnen zu tippen, wäre dumm.Wie kann ich diesen Code effizienter machen?
Erste Frage: Wie kann ich diesen Code verkürzen? Ich bin mit Arrays nicht wirklich vertraut, aber ich vermute, dass ich damit arbeiten würde.
Zweite Frage: Wie verwende ich ein Array, um jeden Buchstaben/Zahl darzustellen?
Danke euch allen.
/*
Blinks "BRENTON" in Morse Code, in pin # 12.
*/
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
int dot = 250;
int dash = dot * 3;
int space = dot * 7;
int rest = 250;
void A() {
digitalWrite(12, HIGH);
delay(dot);
digitalWrite(12, LOW);
delay(rest);
digitalWrite(12, HIGH);
delay(dash);
digitalWrite(12, LOW);
delay(space);
}
void B() {
digitalWrite(12, HIGH);
delay(dash);
digitalWrite(12, LOW);
delay(rest);
digitalWrite(12, HIGH);
delay(dot);
digitalWrite(12, LOW);
delay(rest);
digitalWrite(12, HIGH);
delay(dot);
digitalWrite(12, LOW);
delay(rest);
digitalWrite(12, HIGH);
delay(dot);
digitalWrite(12, LOW);
delay(space);
}
void R() {
digitalWrite(12, HIGH);
delay(dot);
digitalWrite(12, LOW);
delay(rest);
digitalWrite(12, HIGH);
delay(dash);
digitalWrite(12, LOW);
delay(rest);
digitalWrite(12, HIGH);
delay(dot);
digitalWrite(12, LOW);
delay(space);
}
void E() {
digitalWrite(12, HIGH);
delay(dot);
digitalWrite(12, LOW);
delay(space);
}
void N() {
digitalWrite(12, HIGH);
delay(dash);
digitalWrite(12, LOW);
delay(rest);
digitalWrite(12, HIGH);
delay(dot);
digitalWrite(12, LOW);
delay(space);
}
void T() {
digitalWrite(12, HIGH);
delay(dash);
digitalWrite(12, LOW);
delay(space);
}
void O() {
digitalWrite(12, HIGH);
delay(dash);
digitalWrite(12, LOW);
delay(rest);
digitalWrite(12, HIGH);
delay(dash);
digitalWrite(12, LOW);
delay(rest);
digitalWrite(12, HIGH);
delay(dash);
digitalWrite(12, LOW);
delay(space);
}
void pin13(){
digitalWrite(13, HIGH);
delay(10000);
digitalWrite(13, LOW);
delay(1000);
}
void loopOne() {
int i = 0;
while(i < 100) {
pin13();
i++;
}
}
void loop() {
B();
R();
E();
N();
T();
O();
N();
}
sollten Sie fragen Sie [hier] (https://codereview.stackexchange.com/questions) –
bitte Sie nur google "Arduino morse" .... es ist nicht so schwierig https: //gist.github .com/madc/4474559 und andere Hits geben mehr als genug Inspiration – Piglet
Ich stimme diese Frage als off-topic ab, weil Fragen, die Verbesserungen des Arbeitscodes verlangen, auf Code Review, nicht auf Stack Overflow, gehören. – TylerH