试图让arduino闪烁摩尔斯电码

试图让arduino闪烁摩尔斯电码,arduino,led,Arduino,Led,我试图制作一个arduino草图,从串行输入中获取一个0-9的数字,并在莫尔斯电码中为该数字闪烁一盏灯。如果你不知道数字的摩尔代码,这很简单,这是一张图片 数字闪烁后,led应闪烁5秒钟,然后程序应等待输入另一个数字。程序正在做的是等待输入,然后一直闪烁。它甚至从来没有达到闪烁5秒钟的程度。这是我的密码: void setup() { // put your setup code here, to run once: pinMode(LED_BUILTIN, OUTPUT); Ser

我试图制作一个arduino草图,从串行输入中获取一个0-9的数字,并在莫尔斯电码中为该数字闪烁一盏灯。如果你不知道数字的摩尔代码,这很简单,这是一张图片 数字闪烁后,led应闪烁5秒钟,然后程序应等待输入另一个数字。程序正在做的是等待输入,然后一直闪烁。它甚至从来没有达到闪烁5秒钟的程度。这是我的密码:

void setup() {
  // put your setup code here, to run once:
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
  Serial.println("Enter a number to be blinked in moose code");

}

void loop() {
  // put your main code here, to run repeatedly:
  if(Serial.available()>0){
   int num=Serial.read();
   delay(2);
   if(num>=0){
      if(num<6){
        for(int i=0;i<num;i++){
          delay(300);
          digitalWrite(LED_BUILTIN, HIGH);  
          delay(300);                       
          digitalWrite(LED_BUILTIN, LOW);   
        }
        for(int i=num; i<5; i++){
          delay(1200);
          digitalWrite(LED_BUILTIN, HIGH);  
          delay(1200);                       
          digitalWrite(LED_BUILTIN, LOW);
        }
      }
      else{
        for(int i=0; i<(num-5); i++){
          delay(1200);
          digitalWrite(LED_BUILTIN, HIGH);  
          delay(1200);                       
          digitalWrite(LED_BUILTIN, LOW);
        }
        for(int i=num; i<10; i++){
          delay(300);
          digitalWrite(LED_BUILTIN, HIGH);  
          delay(300);                       
          digitalWrite(LED_BUILTIN, LOW);   
        }
      }
      digitalWrite(LED_BUILTIN, HIGH);  
      delay(5000);
      digitalWrite(LED_BUILTIN, LOW); 
   }
  }
}
void setup(){
//将安装代码放在此处,以便运行一次:
引脚模式(LED内置,输出);
Serial.begin(9600);
Serial.println(“输入要在moose代码中闪烁的数字”);
}
void循环(){
//将主代码放在此处,以便重复运行:
如果(Serial.available()>0){
int num=Serial.read();
延迟(2);
如果(num>=0){

如果(num我修复了我的代码,那么我读取数据的方式就会出现问题

long num=0;
void setup() {
  // put your setup code here, to run once:
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
  Serial.print("Enter a number to be blinked in moose code");

}

void loop() {
  // put your main code here, to run repeatedly:
  while(Serial.available()==0){}
  if(Serial.available()>0){
   num=Serial.parseInt();
   delay(2);
   if(num>=0){
      if(num<6){
        for(int i=0;i<num;i++){
          delay(400);
          digitalWrite(LED_BUILTIN, HIGH);  
          delay(400);                       
          digitalWrite(LED_BUILTIN, LOW);   
        }
        for(int i=num; i<6; i++){
          delay(400);
          digitalWrite(LED_BUILTIN, HIGH);  
          delay(2000);                       
          digitalWrite(LED_BUILTIN, LOW);
        }
      }
      else{
        for(int i=0; i<(num-5); i++){
          delay(400);
          digitalWrite(LED_BUILTIN, HIGH);  
          delay(2000);                       
          digitalWrite(LED_BUILTIN, LOW);
        }
        for(int i=num; i<10; i++){
          delay(400);
          digitalWrite(LED_BUILTIN, HIGH);  
          delay(400);                       
          digitalWrite(LED_BUILTIN, LOW);   
        }
      }
      digitalWrite(LED_BUILTIN, HIGH);  
      delay(5000);
      digitalWrite(LED_BUILTIN, LOW); 
   }
  }
}
long num=0;
无效设置(){
//将安装代码放在此处,以便运行一次:
引脚模式(LED内置,输出);
Serial.begin(9600);
串行打印(“输入一个在moose代码中闪烁的数字”);
}
void循环(){
//将主代码放在此处,以便重复运行:
而(Serial.available()==0){}
如果(Serial.available()>0){
num=Serial.parseInt();
延迟(2);
如果(num>=0){

if(numand)你的问题是什么?我会在不同的地方放一些Serial.println(num);语句来帮助你调试。