极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11080|回复: 3

求教简单问题,请高手们编一个给我学习一下

[复制链接]
发表于 2016-10-26 21:32:03 | 显示全部楼层 |阅读模式
求教简单问题,请高手们编一个给我学习一下

我想编的输出4端口,控制4个led二极管灯,输入2个按钮。
我想用2个按键加减数值,当数值等于1启动第一组组合,数值等于2启动第二组组合,一直几十种设定好组合

1-4个二极管灯,几十种组合
就是按下一组,4个端口的led就按照我编好顺序端口亮
按上一组,就照顺序回退。
回复

使用道具 举报

发表于 2016-10-27 09:04:29 | 显示全部楼层
就当四个灯是个二进制数不就可以了
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-11-14 02:19:13 | 显示全部楼层
275891381 发表于 2016-10-27 09:04
就当四个灯是个二进制数不就可以了

听不懂,我是arduino新手,,,能不能写个给我数组学学啊?
回复 支持 反对

使用道具 举报

发表于 2016-11-14 12:39:51 | 显示全部楼层
本帖最后由 275891381 于 2016-11-14 12:42 编辑
  1. #define led_num 4
  2. #define xianshi_moshi 6

  3. //     B0000         0 0 0 0,引脚对应
  4. int led[led_num]={   7,6,5,4};

  5. int led_dianliang_fangshi=0;//低电平点亮  ==1 高电平点亮
  6. char moshi[xianshi_moshi]= { //1为点亮
  7. B00000000, // = 0
  8. B00000001, // = 1
  9. B00000011, // = 2
  10. B00000111, // = 3
  11. B00001111, // = 4
  12. B00001010, // = 5
  13. };
  14. void led_out(char haha)
  15. {
  16.       for(int i=0;i<led_num;i++)
  17.       {
  18.             if(led_dianliang_fangshi==0)
  19.                  digitalWrite(led[i],~(unsigned char)haha%2);
  20.             else
  21.                  digitalWrite(led[i],(unsigned char)haha%2);
  22.             haha=haha>>1;
  23.     }
  24. }
  25. void setup() {
  26.    for(int i=0;i<led_num;i++)
  27.    {
  28.       pinMode(led[i], OUTPUT);
  29.       digitalWrite(led[i], ~led_dianliang_fangshi);
  30.    }
  31. }

  32. void loop() {
  33.        for(int i=0;i<xianshi_moshi;i++)
  34.       {
  35.           led_out(moshi[i]);
  36.           delay(1000);
  37.       }      
  38. }
复制代码


或者显示模式定义成二维数组,可以参考数码管例子,效果一样
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-3 09:26 , Processed in 0.041078 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表