Untitled
unknown
c_cpp
2 years ago
4.7 kB
7
Indexable
#define speakerPin 3
char readchars[255];
unsigned long duration = 100;
int speakerFre = 500;
String comdata = "";
void setup()
{
pinMode(speakerPin, OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
uint32_t fTransmit = 1000;
// TCCR1A = 0b01000000;
// TCCR1B = 0b00001001;
// OCR1A = F_CPU / (2000 * fTransmit) - 1;
char strbuf[255];
// sprintf(strbuf, " 设置载波频率:%d KHz", (F_CPU / (2 * (1 + OCR1A)) / 1000));
Serial.println(strbuf);
}
void loop()
{
comdata = "";
if (Serial.available() > 0)
{
comdata = Serial.readString();
Serial.println(comdata);
}
if (comdata.length() > 0)
{
int str_length = comdata.length();
comdata.toUpperCase();
for (int read_pos = 0; str_length >= read_pos + 1; read_pos++)
{
char read_now = comdata[read_pos];
switch (read_now)
{
case 'A':
dot();
dash();
delay(2 * duration);
break;
case 'B':
dash();
dot();
dot();
dot();
delay(2 * duration);
break;
case 'C':
dash();
dot();
dash();
dot();
delay(2 * duration);
break;
case 'D':
dash();
dot();
dot();
delay(2 * duration);
break;
case 'E':
dot();
delay(2 * duration);
break;
case 'F':
dot();
dot();
dash();
dot();
delay(2 * duration);
break;
case 'G':
dash();
dash();
dot();
delay(2 * duration);
break;
case 'H':
dot();
dot();
dot();
dot();
delay(2 * duration);
break;
case 'I':
dot();
dot();
delay(2 * duration);
break;
case 'J':
dot();
dash();
dash();
dash();
delay(2 * duration);
break;
case 'K':
dash();
dot();
dash();
delay(2 * duration);
break;
case 'L':
dot();
dash();
dot();
dot();
delay(2 * duration);
break;
case 'M':
dash();
dash();
delay(2 * duration);
break;
case 'N':
dash();
dot();
delay(2 * duration);
break;
case 'O':
dash();
dash();
dash();
delay(2 * duration);
break;
case 'P':
dot();
dash();
dash();
dot();
delay(2 * duration);
break;
case 'Q':
dash();
dash();
dot();
dash();
delay(2 * duration);
break;
case 'R':
dot();
dash();
dot();
delay(2 * duration);
break;
case 'S':
dot();
dot();
dot();
delay(2 * duration);
break;
case 'T':
dash();
delay(2 * duration);
break;
case 'U':
dot();
dot();
dash();
delay(2 * duration);
break;
case 'V':
dot();
dot();
dot();
dash();
delay(2 * duration);
break;
case 'W':
dot();
dash();
dash();
delay(2 * duration);
break;
case 'X':
dash();
dot();
dot();
dash();
delay(2 * duration);
break;
case 'Y':
dash();
dot();
dash();
dash();
delay(2 * duration);
break;
case 'Z':
dash();
dash();
dot();
dot();
delay(2 * duration);
break;
case '1':
dot();
dash();
dash();
dash();
dash();
delay(2 * duration);
break;
case '2':
dot();
dot();
dash();
dash();
dash();
delay(2 * duration);
break;
case '3':
dot();
dot();
dot();
dash();
dash();
delay(2 * duration);
break;
case '4':
dot();
dot();
dot();
dot();
dash();
delay(2 * duration);
break;
case '5':
dot();
dot();
dot();
dot();
dot();
delay(2 * duration);
break;
case '6':
dash();
dot();
dot();
dot();
dot();
delay(2 * duration);
break;
case '7':
dash();
dash();
dot();
dot();
dot();
delay(2 * duration);
break;
case '8':
dash();
dash();
dash();
dot();
dot();
delay(2 * duration);
break;
case '9':
dash();
dash();
dash();
dash();
dot();
delay(2 * duration);
break;
case '0':
dash();
dash();
dash();
dash();
dash();
delay(2 * duration);
break;
case ' ':
delay(4 * duration);
break;
default:
break;
}
}
}
} // di:T,da:3T,di-da:T,char-char:3T,word-word:7T
void dot()
{
tone(speakerPin, speakerFre, duration);
delay(2 * duration);
}
void dash()
{
tone(speakerPin, speakerFre, 3 * duration);
delay(4 * duration);
}Editor is loading...