您的位置: 主页>机器人编程>ROBOLAB编程>软件运用|关于arduino基础教程与实操的整合运用:
加盟酷吧机器人 培养孩子核心能力

软件运用|关于arduino基础教程与实操的整合运用:

这是一个前言。

虽说早就写过不定期更新,其实不过是拖延症作祟【……】。这次重新打开,主要是想重新整理一下自己的思路,顺便尝试对学的东西进行系统的整合。请不要当作正经教程,这只是碎碎念而已。

最终效果:超声波传感器检测到人靠近,先亮灯,再变绿,再渐渐变红,最后熄灭。

——————制作过程————————

一:准备材料

1.LED三色模块一个(共阴共阳任意)

软件运用|关于arduino基础教程与实操的整合运用:超声波与LED(1)

2.超声波模块一个

软件运用|关于arduino基础教程与实操的整合运用:超声波与LED(1)

3.UNO一块

软件运用|关于arduino基础教程与实操的整合运用:超声波与LED(1)

4.跳线若干

二:基础代码

因为用到了超声波传感器的输入和三色LED的输出,所以分别从两个模块出发寻找基础代码,再加以整合。

1.超声波模块:这里运用了DFrobot的超声波模块,所以超声波模块的基础信息都来自DFrobot的wiki。

网址:https://wiki.dfrobot.com/URM37_V5.0_Ultrasonic_Sensor_SKU_SEN0001_

参照了原件的demo code和接线

// # Editor : roker// # Date : 05.03.2018// # Product name: URM V5.0 ultrasonic sensor// # Product SKU : SEN0001// # Version : 1.0// # Description:// # The Sketch for scanning 180 degree area 3-500cm detectingrange// # The sketch for using the URM37 PWM trigger pin mode fromDFRobot// # and writes the values to the serialport// # Connection:// # Vcc (Arduino) -> Pin 1 VCC (URM V5.0)// # GND (Arduino) -> Pin 2 GND (URM V5.0)// # Pin 3 (Arduino) -> Pin 4 ECHO (URM V5.0)// # Pin 5 (Arduino) -> Pin 6 COMP/TRIG (URM V5.0)// # Working Mode: PWM trigger pin mode.int URECHO = 3; // PWM Output 0-25000US,Every 50US represent1cmint URTRIG = 5; // trigger pinunsigned int DistanceMeasured = 0;void setup(){//Serial initializationSerial.begin(9600); // Sets the baud rate to 9600pinMode(URTRIG, OUTPUT); // A low pull on pin COMP/TRIGdigitalWrite(URTRIG, HIGH); // Set to HIGHpinMode(URECHO, INPUT); // Sending Enable PWM mode commanddelay(500);Serial.println("Init the sensor");}void loop(){Serial.print("Distance=");digitalWrite(URTRIG, LOW);digitalWrite(URTRIG, HIGH);unsigned long LowLevelTime = pulseIn(URECHO, LOW) ;if (LowLevelTime >= 50000) // the reading is invalid.{Serial.println("Invalid");}else{DistanceMeasured = LowLevelTime / 50; // every 50us low levelstands for 1cmSerial.print(DistanceMeasured);Serial.println("cm");}delay(200);}

2.三色LED模块

这个模块的教程很好找,这里随便例举一个

CSDN博主谢厂节的教程:

https://blog.csdn.net/xundh/article/details/83690856

PS:因为这个模块五花八门,所以需要花点时间测试一下255和0哪一个代表有色哪一个代表无色。没有别的注意事项,看看是共阴还是共阳就好。

鼓捣鼓捣就出来了。

三:整合

我习惯把两个code同时打开,再新建一个空白文件,这样会比较一目了然。

按void setup()和void loop()把两个文件整合到新的文件里面。void loop()void loop()

效果:超声波测距在串口监视器显示数值,LED变色。要把两个串联在一起还需要使用if函数,通过调整距离来改变LED的颜色。

参考代码(前面都是不需要修改的,所以就放loop部分

void loop()

{

  Serial.print("Distance=");

  digitalWrite(URTRIG, LOW);

  digitalWrite(URTRIG, HIGH);              

  unsigned long LowLevelTime = pulseIn(URECHO, LOW) ;

   if (LowLevelTime >= 50000)             

  {

    Serial.println("Invalid");

  }

  else

  {

    DistanceMeasured = LowLevelTime / 50;  

    Serial.print(DistanceMeasured);

    Serial.println("cm");

  }

  delay(200);

  int i,j;

  if(DistanceMeasured<=5)

    {

  setColor(255,255,0);   

  delay(2500);  

    for(i=255;i>0;i--)

  {

    setColor(i,i,0);

    delay(10);

  }

  setColor(0,0,0);  

  delay(2500);  

  for(i=0;i<256;i++)

  {

    setColor(i,0,0);

    delay(10);

  }

  setColor(255,0,0);   

  delay(2500); 

     for(i=0,j=255;i<256,j>0;i++,j--)

  {

    setColor(j,i,0);

    delay(10);

  }

  setColor(0,255,0);   

  delay(2500); 

       }

     else

     {

      setColor(255,255,0);   

      delay(2500); 

     }

}

最终效果:

软件运用|关于arduino基础教程与实操的整合运用:超声波与LED(1)

软件运用|关于arduino基础教程与实操的整合运用:超声波与LED(1)

软件运用|关于arduino基础教程与实操的整合运用:超声波与LED(1)

后记,小编朋友公司研发了一个游戏化的少儿编程在线课程(5-12岁),游戏化教学结合scratch(一款在线少儿编程工具,类似乐高的积木拼搭),我家娃娃学了几次课,非常喜欢(超预期),16次课才200多块钱,对锻炼孩子的思维能力和动手动力很有帮助。

欧美思机器人教育加盟 赚钱好项目
上一篇:【Arduino】从一个简单的例子入门Arduino
下一篇:55用scratch3.0实现霓虹世界
您可能喜欢
回到顶部