【祖传点灯】安信可Ai-M61-32S+Arduino

[复制链接]
查看1329 | 回复15 | 2024-5-8 01:28:29 | 显示全部楼层 |阅读模式
首先很感谢安信可发放的板子(这也是我第一次申请板子)。
因为最近在忙着其他的比赛,收到板子第一时间,还没开始做。最近看了论坛上的帖子,看到这个板子可以用arduino开发,于是就想先用arduino简单的点个灯。
环境和例程我是参照了这位大佬的帖子 https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=44761
由于这个大佬的帖子说的很清楚。所以我就浅浅的总结一下。
1.第一步先安装arduino ide
2.安装完成后下载BL618板库(这一步如果直接在arduino里下载的话可能会下载失败,需要科学上网,或者下载离线包然后放到指定路径下)
3.下载好板库之后会出现一个问题,三色灯的三个gpio_pin分别是12,14,15但是有两个被定义成立adc的通道,需要我们打开板库的库文件,修改之后将其定义成普通gpio口,用来操作。这一步大佬的帖子上说的也很清楚。
4,最后按照arduino的编程思路写一个点灯代码即可
//const int buttonPin = 2;     // 连接按键的引脚
//int buttonState = 0;         // 存储按键状态的变量
unsigned char count=0;

void setup() {
  pinMode(12, OUTPUT);
  pinMode(14, OUTPUT);
  pinMode(15, OUTPUT);
  pinMode(27, OUTPUT);
  pinMode(29, OUTPUT);
  pinMode(2,INPUT);
}


void loop(){
  //unsigned char buttonState = digitalRead(2);
  if (digitalRead(2) == HIGH) {
      delay(5);   
      if (digitalRead(2) == HIGH) {
        while(digitalRead(2) == HIGH);
      count++;         
      if(count>=3)count = 0;
      if(count==0){
        digitalWrite(27, LOW);
        digitalWrite(29, LOW);
      }  
      else if(count==1){
        digitalWrite(27, HIGH);
        digitalWrite(29, LOW);
      }
       else if(count ==2){
        digitalWrite(27, LOW);
        digitalWrite(29, HIGH);
      }   
    }
  }
  
switch(count){
//关红,绿,蓝
  case 0:
  digitalWrite(12, LOW);
  digitalWrite(14, LOW);
  digitalWrite(15, LOW);
  break;
//开红灯,关绿,蓝
  case 1:
  digitalWrite(12, HIGH);
  digitalWrite(14, LOW);
  digitalWrite(15, LOW);
  delay(250);
//开绿灯,关红,蓝
  digitalWrite(12, LOW);
  digitalWrite(14, HIGH);
  digitalWrite(15, LOW);
  delay(250);
//开蓝灯,关红,绿
  digitalWrite(12, LOW);
  digitalWrite(14, LOW);
  digitalWrite(15, HIGH);
  delay(250);
  break;
//开红,蓝灯,关绿
  case 2:
  digitalWrite(12, HIGH);
  digitalWrite(14, LOW);
  digitalWrite(15, HIGH);
  delay(250);
//开绿,蓝灯,关红
  digitalWrite(12, LOW);
  digitalWrite(14, HIGH);
  digitalWrite(15, HIGH);
  delay(250);
//开红,绿灯,关蓝
  digitalWrite(12, HIGH);
  digitalWrite(14, HIGH);
  digitalWrite(15, LOW);
  delay(250);
  break;
  default:
  break;
}
}

以下是这个代码的效果
79bdb5167c2ce26b15d0f1d2fbf03ad.jpg

34540900e4520dfc647d34dde11eaf6.jpg

ec51eb1ed07c1c782e0cc2870874e62.jpg

arduino点灯还是比较简单的,后面我打算用vscode来写。
再次感谢安可信,以及园长大大。
回复

使用道具 举报

1084504793 | 2024-5-8 08:26:33 | 显示全部楼层
回复

使用道具 举报

lazy | 2024-5-8 08:36:53 | 显示全部楼层
arduino赞
回复

使用道具 举报

爱笑 | 2024-5-8 08:53:39 | 显示全部楼层
用心做好保姆工作
回复

使用道具 举报

bzhou830 | 2024-5-8 12:08:07 | 显示全部楼层
arduino赞
选择去发光,而不是被照亮
回复

使用道具 举报

干簧管 | 2024-5-8 19:18:14 | 显示全部楼层
回复

使用道具 举报

1055173307 | 2024-5-8 19:44:05 | 显示全部楼层
回复

使用道具 举报

WT_0213 | 2024-5-9 08:18:39 | 显示全部楼层
arduino赞
回复

使用道具 举报

timo | 2024-5-12 08:56:34 | 显示全部楼层
真详细
回复

使用道具 举报

物联网 | 2024-5-12 09:24:51 | 显示全部楼层
恭喜
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则