App Inventor + Arduino 的 VFD 按讚機

系統架構:

手機取得指定粉絲專業的按讚次數之後,將個別位數透過藍牙以 byte array 方式傳送給 Arduino,再讓Arduino去驅動個別的 VFD 數字管。

最近都走有溫度的質感風~  也慶祝一下 CAVEDU Facebook 粉絲頁有2800讚囉

參考:

[App Inventor] 取得粉絲專頁按讚數 V1.0

[雙A計劃]系列專文

VFD Modular Clock IV-6 數字管時鐘

Akafugu Nixie Clock 真空管時鐘

2014-08-13 17.12.04

 

Arduino code 在此,每種 VFD 的 library 不同,要注意喔

Arduino接收藍牙數字後控制 VFD
#include <SoftwareSerial.h>

#include <Wire.h>//引用二個函式庫SoftwareSerial及Wire

SoftwareSerial I2CBT(12,13);TX/RX
#include "VFDTube.h"
#define TUBE_COUNT 4

VFDTube tube(8, 9, 10, 11, TUBE_COUNT);
// DIN on pin #4, OE on pin #5, STCP on pin #6, SHCP on pin #7,
// TUBE_COUNT stands for sections count in serial
// Pin #5 is with PWM output on UNO, so the brightness is adjustable
char cmmd[20];
int insize;
int i;
int s=56;

void setup() {
Serial.begin(9600);
I2CBT.begin(9600); //藍牙鮑率:9600
tube.clear();
tube.setBrightness(0xf0);
}

void loop() {
tube.clear();
//tube.setBackgroundColor((Color) ((s) / 7));
// background color shift in every 7 seconds
while(1){
//讀取藍牙訊息
if ((insize=(I2CBT.available()))>0){
if(I2CBT.read()=='j'){
I2CBT.readBytes(cmmd,4);
for(i=0; i<4; i++){
Serial.print(char(cmmd[i]));//DEC to ASCII
if (s & 0x01)
tube.printf("%01d.%01d.%01d.%01d.", cmmd[0]-48, cmmd[1]-48,cmmd[2]-48,cmmd[3]-48);
else
tube.printf("%01d%01d%01d%01d", cmmd[0]-'0', cmmd[1]-'0', cmmd[2]-'0', cmmd[3]-'0');
tube.display();
}//for
}//if==j
}//if insize
}//while
///////////////藍牙接收///////////////
}//loop

2 thoughts on “App Inventor + Arduino 的 VFD 按讚機

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *