“数码管控制”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(Created page with "{| style="width: 800px;" |- | ==目的== 本教程将教大家如何用processing来控制一个共阴极数码管。 ==设备== *'''Microduino-Core''' *'''Microduino-...")
 
Pkj讨论 | 贡献
程序
第23行: 第23行:
 
==程序==
 
==程序==
  
ProcessingSegment
+
https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Processing/ProcessingSegment
 
 
  
 
==调试==
 
==调试==

2014年6月9日 (一) 05:53的版本

目的

本教程将教大家如何用processing来控制一个共阴极数码管。

设备


  • 其他硬件设备
    • USB数据连接线 一根
    • 共阴极数码管 一个
    • 面包板跳线 一盒
    • 10K欧电阻 一个

原理图

Processing7SegmentSchematics.jpg

程序

https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Processing/ProcessingSegment

调试

步骤一:按着原理图搭建硬件环境,像这样:

Processing7SegmentConnectionDiagram.jpg


步骤二:解释一下代码:

本例需要两端的代码,Processing端和Microduino端

Microduino:

使用firmata的StandardFirmata程序。

Processing:

//定义8个LED用来表示一个数码管。

 LED[] leds = new LED[8]; // An array of 8 led objects!

//定义对应数码管引脚1,2,.......10的Microduino引脚。

 int microduinoPins[] = {//Correspondence microduino pin for 7 segment 
   11,2,4,5,6,7,9,10};

//定义数码管LED标签

 String segmentLables[]={"1-e","2-d","3-c","4-dp","5-b","6-a","7-f","8-g"};


//在setup()中初始化绘制数码管的8个led

 for (int i = 0; i < leds.length; i ++ ) { // Initialize each led and output pin using a for loop.
   leds[i] = new LED((i+1)*60, 75, 50,50,i+1);
   arduino.pinMode(microduinoPins[i], Arduino.OUTPUT); 
 }

//在draw()中绘制数码管并判断led的亮灭并把状态发送到Microduino

 for (int i = 0; i < leds.length; i ++ ) { // Run each Car using a for loop.
   leds[i].display();
   
   //draw segemnt lables
   text (segmentLables[i], (i+1)*60+8, 60); 
   
   if (leds[i].button) {//switch led on/off
     arduino.digitalWrite(microduinoPins[i], Arduino.HIGH);
   }
   else {
     arduino.digitalWrite(microduinoPins[i], Arduino.LOW);
   }
 }

步骤三:下载代码并编译通过。

步骤四:运行后,在processing中会出现8个LED,鼠标点击每个led看数码管会有什么反应。

结果

鼠标点击后对应的数码管LED会亮起或熄灭,像这样


视频