【发布时间】:2017-12-23 17:10:03
【问题描述】:
我正在学习编写 Arduino 代码,为此,我尝试用英语制作一个摩尔斯电码转换器。这是我的代码,我面临以下问题:
Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Uno"
C:\Users\Kunal Gehlot\OneDrive\Documents\Arduino\Morse_CODE\Morse_CODE.ino: In function 'void setup()':
Morse_CODE:16: error: request for member 'length' in 'in', which is of non-class type 'char [28]'
for (int i = 0; i < in.length; i++) {
^
Morse_CODE:18: error: request for member 'lentgh' in 'in', which is of non-class type 'char [28]'
n = in.lentgh[i];
^
exit status 1
request for member 'length' in 'in', which is of non-class type 'char [28]'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
这是我的代码:
int Speaker1 = 4;
int Speaker2 = 6;
int LED = 2;
int Relay = 12;
char n = 0;
char in[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
void setup() {
pinMode(Speaker1, OUTPUT);
pinMode(Speaker2, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(Relay, OUTPUT);
for (int i = 0; i < in.length; i++) {
n = in.lentgh[i];
switch (n) {
case 'A' :
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'B' :
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'C' :
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'D' :
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'E' :
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'F' :
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'G' :
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'H' :
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'I' :
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'J' :
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'K' :
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'L' :
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'M' :
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'N' :
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'O' :
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'P':
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'Q':
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'R':
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'S':
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'T':
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'U':
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'V':
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'W':
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'X':
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'Y':
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case 'Z':
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(300);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(100);
digitalWrite(Speaker1, HIGH);
delay(100);
digitalWrite(Speaker1, LOW);
delay(300);
break;
case ' ' :
delay (700);
break;
}
}
}
void loop() {
}
我对这个项目的唯一目标是从串行监视器中获取输入文本并将其分解为每个单独的字母,我还将在列表中添加符号并将其转换为 LED 中的摩尔斯电码,继电器用于电脉冲和扬声器。
【问题讨论】:
-
你从哪里得到
length?in.lentgh[i]应该做什么? -
请不要将问题固定为答案,否则新读者很难看出问题所在。正如您所做的那样,添加答案是正确的方法。谢谢!
-
注意到并抱歉,会注意的