2018年1月19日 星期五

Arduino學習180120.自製照度計


Arduino學習180120.自製照度計

準備以下硬體並安裝
Arduino UNO
照度計模塊GY-30
IIC1602螢幕
18650電池*2
接線

先參考學習262及610,了解螢幕及照度計模塊的使用,
將照度計模塊接在A4和A5,將螢幕接在SDA和SCL,
先安裝在麵包板上,並上傳程式,無誤後由18650電池供電,


#include <Wire.h>
#include <LiquidCrystal_I2C.h> //務必先安裝資料庫
#include <BH1750.h>

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //設定位址或0x27或0x20或0x38
BH1750 lightMeter;

void setup() {
  Serial.begin(9600); //通訊速率
  lcd.begin(16, 2); //初始化16字元2行
  lightMeter.begin();

  for(int i = 0; i < 3; i++) {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight(); //閃爍三次後點亮背光
}

void loop() {
  uint16_t lux = lightMeter.readLightLevel();
  Serial.println(lux);
  lcd.clear();
  lcd.print(lux);
  delay(1000);
}

測試無誤後將電路移裝到塑膠板上,電池裝在板後加上開關


在無雲太陽照射下測得照度在6000Lux以上,
室內約只300Lux以下,




2017年11月14日 星期二

學習171114.火燄感應模塊3針,火災警報器

學習171114.火燄感應模塊3針,火災警報器

此模塊感應紅色火燄或波長760~1100nm光源,
輸入DC3.3V~5V,輸出數位訊號,
常態輸出高電平,有感應時輸出低電位,↓



數位開關可使用內建範例Digital>Button,
將模塊輸出腳接在Arduino的Pin2,↓

上傳程式後UNO板上的Pin13燈常亮,
取火靠近感應器,勿太接近以免燒壞設備注意安全,
當有感應時Pin13燈熄滅,可調整板上電位鈕控制敏感度,
火燄越大感應距離可越遠,實測發現對藍色火燄沒反應,


若以上沒問題,將程式底部修改,Pin13的HIGH與LOW參數相反,
使常態燈不亮,有感應時亮燈,
並加裝有源蜂鳴器在Pin13,即成了火災警報器,↓






www.ee543.com

2017年8月8日 星期二

學習170808.光電測轉速模塊MH測TT減速馬達

學習170808.光電測轉速模塊MH測TT減速馬達

準備以下硬體並安裝↓
Arduino UNO R3
光電測轉速模塊MH
公對母杜邦線
TT減速馬達
20格輪盤



此光電模塊輸出數位訊號,A0腳位是無效的,先搭配內建數位開關程式來測試,
可參考學習131數位開關,接好硬體上傳內建範例Digital>Button↓


上傳後取金屬起子紙板塑膠尺等物在感應槽來回移動,UNO內建P13燈會隨訊號熄亮,
測試一些材料後會發現此模塊無法感應部分塑膠材質,
確認模塊沒問題,來測試TT減速馬達的轉速,此搭配20格輪盤及18650電池,↓

此模塊和對射式光電感應模塊FC33功能是相同的,可參考學習170513,
程式也一樣,找出拼圖上傳打開監視小窗↓

{
  pinMode( 2 , INPUT);
  Serial.begin(9600);
}

void loop()
{
  _ABVAR_1_BTS = digitalRead(2) ;
  if (( ( _ABVAR_1_BTS ) != ( _ABVAR_2_BTL ) ))
  {
    if (( ( _ABVAR_1_BTS ) == ( HIGH ) ))
    {
      _ABVAR_3_count = ( _ABVAR_3_count + 1 ) ;
      Serial.print(_ABVAR_3_count);
      Serial.println();
    }
  }
  _ABVAR_2_BTL = _ABVAR_1_BTS ;
  delay( 10 );
}

通電啟動馬達就會開始計數,計時60秒後約1600,除以20格後約80RPM,
此為特殊齒輪比馬達,測其他一般的TT馬達約180RPM,
注意電腦與Arduimo的通信速率為9600,只要速度高於9600就會漏數,
就要過減速齒輪或降低光柵格數
影片



www.ee543.com

2017年7月28日 星期五

學習170724.反射式紅外線避障模塊

學習170724.反射式紅外線避障模塊

此模塊功能為物件接近時,輸出數位訊號,
輸入電壓DC3.3V~5V,GND及Vcc+,
由紅外線發射器發出訊號,反波後由接收器接收,
常態輸出高電平,有物接近時輸出低電位,↓


數位開關可參考學習131,130等按鍵控制LED燈,
使用內建範例Digital>Button,
將模塊輸出腳接在Arduino的Pin2,↓

上傳程式後在無物靠近狀態下UNO板上的燈常亮,
當有物件靠近時Pin13燈熄滅,
也可修改程式使相反有物亮燈,無物熄燈,↓

可調整模塊上的電位器,來控制接近的距離反應,
每種材質及顏色都會影響紅外線的接收距離,
此模塊可裝在自動車上,作接近物件時的判斷,
因此驅動馬達時需搭配馬達驅動板或繼電器使用,


www.ee543.com


2017年5月26日 星期五

學習170527.4針可調光敏模塊

學習170527.4針可調光敏模塊

之前學習了使用光敏電阻讀取數據來控制燈開關,
而此模塊可輸出數位訊號及類比數據,
並帶有電位器,可直接調整以搭配環境光源來觸發訊號,


類比訊號可參考學習310接收類比訊號
使用內建範例Basics>AnalogReadSerial,
將模塊的類比訊號腳接上UNO板的A0,上傳後開啟監控視窗,取得類比數據,


另可參考學習340光控感光燈,
將環境數據達到某個數值,則啟動內建P13LED燈


數位開關可參考學習131,130等按鍵控制LED燈,
使用內建範例Digital>Button,
將模塊的數位輸出腳接在Arduino的Pin2
調整模塊電位器,當環境亮時輸出低電平,環境暗時輸出高電平,
以啟動控制P13LED燈,



此模塊的數位輸出已搭配電位器設計,
可在環境暗時直接輸出高電以點亮LED燈,
因此可不需要Arduino,可直接接上外部LED燈,
但輸出電流低,若要啟動其他設備需搭配低電平電位器,
以下影片前部當環境暗時啟動燈,後部影片則相反的當環境亮時才啟動馬達,




www.ee543.com

2017年5月15日 星期一

Arduino170513.對射式光電感應模塊FC33測馬達轉速計數器

學習170513.對射式光電感應模塊FC33測馬達轉速計數器

在學習按鍵計數器完成後,要搭配光電感應模塊來測馬達電機轉速,
此模塊主晶片為LM393,響應時間約10uS,腳位為訊號/GND/VCC,
內建帶燈,在有物件遮蔽時輸出高電位內建燈熄,
反之無遮蔽時輸出低電位內建燈亮↓


準備以下硬體並安裝↓
Arduino UNO R3
對射式光電感應模塊FC33
公對母杜邦線
馬達(最好RPM1000以下,此篇安裝TT馬達)
光柵輪盤或風扇片



此篇單純測試轉速,所以馬達另外供電啟動,和Arduino無直接連接↓


和學習"按鍵計數器"一樣的拼圖程式,將閃燈去除,時間修改為10ms,
此模塊反應時間為10us,而1000000us=1秒,即1秒可達100000次,
理論上應可測試RPM60萬轉速,但需Arduino及程式等搭配,
在網上有許多換算過直接顯示RPM的程式,但每個程式測試後的誤差很大,

所以此用簡單的計數程式,不換算轉速,用手動計時的方式,減少UNO板的計算負擔↓

bool _ABVAR_1_BTS= false ;
bool _ABVAR_2_BTL= false ;
int _ABVAR_3_count = 0 ;

void setup()
{
  pinMode( 2 , INPUT);
  Serial.begin(9600);
}

void loop()
{
  _ABVAR_1_BTS = digitalRead(2) ;
  if (( ( _ABVAR_1_BTS ) != ( _ABVAR_2_BTL ) ))
  {
    if (( ( _ABVAR_1_BTS ) == ( HIGH ) ))
    {
      _ABVAR_3_count = ( _ABVAR_3_count + 1 ) ;
      Serial.print(_ABVAR_3_count);
      Serial.println();
    }
  }
  _ABVAR_2_BTL = _ABVAR_1_BTS ;
  delay( 10 );
}


上傳後打開電腦的監視小窗,啟動馬達就會開始計數,除以20格後約180RPM,
為了測試模塊反應時間,將光柵輪盤換成了風扇片,由20格降低為3次,
並接上外接顯示LED,另參考學習螢幕轉接板IIC/I2C


因Block積木沒有完美對應外接I2C螢幕,所以手寫修改程式↓

#include <Wire.h>
#include <LiquidCrystal_I2C.h> //務必先安裝資料庫
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //注意0x3F螢幕位址

bool _ABVAR_1_BTS= false ;
bool _ABVAR_2_BTL= false ;
int _ABVAR_3_count = 0 ;

void setup()
{
  pinMode( 2 , INPUT);
  Serial.begin(9600);
  lcd.begin(16, 2); //初始化16字元2行

  for(int i = 0; i < 2; i++) {
    lcd.backlight();
    delay(200);
    lcd.noBacklight();
    delay(200);
  }
  lcd.backlight(); //閃爍2次後點亮背光
  lcd.setCursor(0, 0); //第一行顯示
  lcd.print("0");
}

void loop()
{
  _ABVAR_1_BTS = digitalRead(2) ;
  if (( ( _ABVAR_1_BTS ) != ( _ABVAR_2_BTL ) ))
  {
    if (( ( _ABVAR_1_BTS ) == ( HIGH ) ))
    {
      _ABVAR_3_count = ( _ABVAR_3_count + 1 ) ;
      Serial.print(_ABVAR_3_count);
      Serial.println();
      lcd.clear();
      lcd.print(_ABVAR_3_count);
    }
  }
  _ABVAR_2_BTL = _ABVAR_1_BTS ;
  delay( 5 );
}

經過測試20格的光柵輪盤或3葉風扇片,換算為RPM後誤差不大,
而外接I2C螢幕後計數變慢了,誤差變大,
所以建議還是用電腦監視小窗會較理想,不要再增加程式的負擔,
影片


測試過幾種不同馬達後發現,由於Arduimo的通信速率為9600,
1分鐘為60秒=60000ms/9600=6.25ms,
因此只要快於該速度回傳到電腦監控螢幕就會漏數,
若要測高轉速馬達,建議過減速齒輪或減少轉盤空格,
或是修改程式不要每次高低訊號都回傳電腦螢幕,



www.ee543.com

2017年4月21日 星期五

修電蚊拍+改電蚊拍

修電蚊拍+改電蚊拍

新的電蚊拍用一段時間後,就會變的無力,
網路上許多文章都告知原因是電容的擊穿問題,
但拆解玩過幾支後發現,大多是電網因氧化提高了電阻,
造成電蚊只能短時間昏迷麻痺而無法擊斃,
除了電網氧化影響,還有電池及電容的老化的問題,
若手邊無電容無電池可換,就先把網面清理試試吧,
另電網電壓超過1000V,千萬不要拿一般電表量測電網電壓,

拆解時外表容易看到2個螺絲,另外還有2~3個螺絲,
隱藏在貼紙下,注意拆殼時先取金屬起子在電網上放電,
確認電容裡無電以免被電到,↓

取下螺絲拆蓋,此款是內建充電池,除了拍蚊時的壓按開關,
還有一個關閉電源的切換開關,尾端有插頭直接充電用,↓

用三用電表量測電池2端,電池種類很多種,電壓都不太相同,
此款量測為DC2.67V,算是低了些,不過還可充電正常使用,
有些拍使用不可充電的乾電池,則為1.5V*2=3V,
有試改過使用18650電池也沒問題,充電式的電池應經常保持電力,
若到完全沒電又放著,就無法再蓄電了,↓

取下電路板,此款是充電式的,電路板接插頭的部分是充電器功能,
另前半部是從電池經過線圈升壓到電容,再一次放電到電網,
可在網路上搜尋電蚊拍電路圖,細部不同但原理相同,↓

發現大電容附近有明顯蠟質物影響燒焊,不知是不是電容的流出物,↓

取下最大的電容,一般為223J2KV的麥拉電容又稱薄膜電容,
此功能是將升壓的電流,儲存在此,再一次瞬間放電,
當電容的容量越大,所能放出的電流就越強,
而電容使用一段時間蓄電力就會降低或擊穿,
當擊穿時用電表可量測為短路狀態則為完全故障,
若只是降低電容量用一般電表是無法量測的,↓

準備2個新的電容,223J2KV,該標示2KV=2000V,
223=22*10^3次方=22000pF=0.022uF,J為正負差5%,
為加強電擊效果,將電容並接提升容量為2倍即0.044uF,↓


麥拉電容無極性,無分邊,將新電容焊上原腳位孔,並剪去多長的腳,↓


因安裝空間問題,另一個電容焊在板的背面,一樣不分極性,↓


都焊上後不急著安裝,取一字起子沿網邊拆開膠框取下電網,
共有3片,接線內正外負,用砂紙鋼刷等去除網上氧化物,
若有變形一併整形,會發現電網的金屬顏色差異很大,↓

都完成了就裝回,找實驗體去囉,不過通常都躲起來了,↓


近日蚊過多,另找一支老將維護,拆殼後先測電池是否正常,
電壓為4.28V沒問題,↓

取下最大的電容,一樣是使用223J 2000V,
這次要換上容量更大的563J,比223J*2更大,
因為563J2KV比較大顆,要注意空間,不過裝過大多都是可行的↓


電路板設計大同小異,一樣是後半部充電器,前半部升壓蓄電,↓


焊好電容先不裝回,沿著膠框拆下電網處理氧化及整形,
圖片砂紙附近磨過後的顏色明顯亮白,↓

563J2KV比較大顆,裝回"喬"一下就OK,老將重出江湖擊殺敵軍去,↓

要剛好找到實驗體並錄影實在困難,補上電擊蒼蠅後的結果,
雙眼大頭連著脊椎神經在電網上,身體已支離破碎,
屍首分離~慘不忍睹~千萬不要拿去惡作劇呀,↓


www.ee543.com