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 不同,要注意喔

#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
Arduino接收藍牙數字後控制 VFD

About CAVEDU 阿吉 - 雜工 (2521 Articles)
CAVEDU 教育團隊 打雜
Contact: Website

2 Comments on App Inventor + Arduino 的 VFD 按讚機

  1. 請問一下 char cmmd[20]; 是代表甚麼意思?

Leave a comment

Your email address will not be published.


*