2017年3月24日 星期五

Arduino學習.繼電器控制電磁計數器跳表

Arduino學習.繼電器控制電磁計數器跳表

目標要按下按鈕或感應訊號時,透過繼電器驅動計數器,
並要測試計數器的時間反應極限,
由於此計數器是使用12V電力,而UNO僅輸出5V電力,
故需另接繼電器來驅動計數器跳表,

準備的硬體有
LED燈*1
220或330歐電阻*1
10K或1K電阻*1
開關*1
面包板*1
線材
電磁計數器*1
繼電器*1
DC9~12V電力

可先參考學習130.按鍵控制LED燈,

在開關常態時電阻連接GND,使之接收低電位訊號,
此次積木程式利用了內建P13的LED燈,
在觸發按鍵為高電位訊號後,P13的LED燈快閃10次,
一亮一滅的時間為50ms+50ms,
若沒問題則可連接硬體繼電器及計數器,
 
這次是搭配高電位觸發的繼電器,
腳位分別是+5V,GND,訊號,
而計數器是12V的,但測試9v電池可驅動,
所以一線接電池負,另一線接繼電器,於NO常開腳再接到電池正,
建議P13測試無誤後建議改回P11,
因為UNO板在開啟時P13燈會閃動而觸發繼電器,

完成軟硬體後,按下按鈕使計數器跳表10下,
可修改50ms時間差,測試計數器的時差極限,
測試後14+14=24毫秒已是極限,再快就會出現漏數,







2017年3月23日 星期四

Arduino學習.水滴感應模塊

Arduino學習.水滴感應模塊

準備以下硬體並安裝↓
Arduino
水滴感應模塊
公對母接線

以下腳位定義,連線到Arduino上
.S=輸出模擬類比訊號Analog,接到Arduino的A0腳位
.+=+5Vcc
.-=GND


硬體連線好後打開Arduino的內建範例,檔案>範例>Basics>AnalogReadSerial↓
 


建議將最下方delay時間改為1000,上傳後開啟監控視窗↓



一開始的數據是0,滴些水到感應線上,監控數據開始變化,水滴越多,數據就越高↓



以上可取得數據約0~290之間,將這數據轉換成13腳LED閃爍時間,
可參考類比控制閃燈課程http://ee543.blogspot.tw/2016/01/arduino321.html
設定變數名A為閃爍時間,當水滴量大於50時點亮LED, 水滴量越大閃爍越快↓


int _ABVAR_1_A = 0 ;

void setup()
{
  Serial.begin(9600);
  pinMode( 13 , OUTPUT);
}

void loop()
{
  _ABVAR_1_A = map ( analogRead(0) , 0 , 290 , 290 , 10 )  ;
  Serial.print(analogRead(0));
  Serial.println();
  if (( ( analogRead(0) ) > ( 50 ) ))
  {
    digitalWrite( 13 , HIGH );
    delay( _ABVAR_1_A );
    digitalWrite( 13 , LOW );
    delay( _ABVAR_1_A );
  }
}

上傳後打開監視窗,並滴水到感應器,看看P13燈的反應,
自己試試改接馬達,模擬車輛遇雨天時自動啟動雨刷速度,


www.ee543.com