修電蚊拍+改電蚊拍
新的電蚊拍用一段時間後,就會變的無力,
網路上許多文章都告知原因是電容的擊穿問題,
但拆解玩過幾支後發現,大多是電網因氧化提高了電阻,
造成電蚊只能短時間昏迷麻痺而無法擊斃,
除了電網氧化影響,還有電池及電容的老化的問題,
若手邊無電容無電池可換,就先把網面清理試試吧,
另電網電壓超過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
2017年4月21日 星期五
2017年4月11日 星期二
Arduino學習.按鍵計數器
Arduino學習.按鍵計數器
並顯示在監控螢幕上,準備硬體安裝↓
開關*1
10K或1k電阻*1
接線
外掛ArduBlock找出拼圖↓
上傳後打開監控畫面,並壓下按鍵,正常情形下,在未通路前GND訊號經過電阻到P2,當按鍵被壓下,高電位被傳送到P2腳位時,則變數count+1,並顯示在監控畫面上,此時應會發現,當按鍵一直被壓著,就會一直計算,因此需另多加判斷式,來判斷P2是否放手回復,才算一次↓
設定變數BTS和BTL是按下和放手,二種不同狀態,來判斷P2腳位是否有高位和低位的變化,當有變化時才計一次,沒變化時就不計次,此程式可運用在如光電感應器.近接開關或計算馬達轉速等等計數使用
bool _ABVAR_1_BTS= false ;
bool _ABVAR_2_BTL= false ;
int _ABVAR_3_count = 0 ;
void setup()
{
pinMode( 2 , INPUT);
pinMode( 13 , OUTPUT);
Serial.begin(9600);
}
void loop()
{
_ABVAR_1_BTS = digitalRead(2) ;
if (( ( _ABVAR_1_BTS ) != ( _ABVAR_2_BTL ) ))
{
if (( ( _ABVAR_1_BTS ) == ( HIGH ) ))
{
digitalWrite( 13 , HIGH );
_ABVAR_3_count = ( _ABVAR_3_count + 1 ) ;
Serial.print(_ABVAR_3_count);
Serial.println();
}
}
_ABVAR_2_BTL = _ABVAR_1_BTS ;
digitalWrite( 13 , LOW );
delay( 50 );
}
求知若渴,虛心若愚
2017年3月24日 星期五
Arduino學習.繼電器控制電磁計數器跳表
Arduino學習.繼電器控制電磁計數器跳表
目標要按下按鈕或感應訊號時,透過繼電器驅動計數器,
並要測試計數器的時間反應極限,
由於此計數器是使用12V電力,而UNO僅輸出5V電力,
故需另接繼電器來驅動計數器跳表,
目標要按下按鈕或感應訊號時,透過繼電器驅動計數器,
並要測試計數器的時間反應極限,
由於此計數器是使用12V電力,而UNO僅輸出5V電力,
故需另接繼電器來驅動計數器跳表,
準備的硬體有
LED燈*1
220或330歐電阻*1
10K或1K電阻*1
開關*1
面包板*1
線材
電磁計數器*1
繼電器*1
DC9~12V電力
可先參考學習130.按鍵控制LED燈,
LED燈*1
220或330歐電阻*1
10K或1K電阻*1
開關*1
面包板*1
線材
電磁計數器*1
繼電器*1
DC9~12V電力
可先參考學習130.按鍵控制LED燈,
在開關常態時電阻連接GND,使之接收低電位訊號,
此次積木程式利用了內建P13的LED燈,
在觸發按鍵為高電位訊號後,P13的LED燈快閃10次,
一亮一滅的時間為50ms+50ms,
若沒問題則可連接硬體繼電器及計數器,
此次積木程式利用了內建P13的LED燈,
在觸發按鍵為高電位訊號後,P13的LED燈快閃10次,
一亮一滅的時間為50ms+50ms,
若沒問題則可連接硬體繼電器及計數器,
這次是搭配高電位觸發的繼電器,
腳位分別是+5V,GND,訊號,
而計數器是12V的,但測試9v電池可驅動,
所以一線接電池負,另一線接繼電器,於NO常開腳再接到電池正,
建議P13測試無誤後建議改回P11,
因為UNO板在開啟時P13燈會閃動而觸發繼電器,
腳位分別是+5V,GND,訊號,
而計數器是12V的,但測試9v電池可驅動,
所以一線接電池負,另一線接繼電器,於NO常開腳再接到電池正,
建議P13測試無誤後建議改回P11,
因為UNO板在開啟時P13燈會閃動而觸發繼電器,
完成軟硬體後,按下按鈕使計數器跳表10下,
可修改50ms時間差,測試計數器的時差極限,
測試後14+14=24毫秒已是極限,再快就會出現漏數,
2017年3月23日 星期四
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
2016年12月16日 星期五
Arduino學習.可變電阻控制伺服馬達機器爪
Arduino學習.可變電阻控制伺服馬達機器爪
伺服馬達,各有不同的扭力及速度,有180度角PWM訊號控制,
也有360度及數位控制型,此篇為180度角PWM訊號控制的馬達,
馬達耗電可能超過Arduino板範圍,因此建議另外接電源,
由USB提供電力給Arduino,只支援500mA,扣除本身需求,只能輸出約300mA,
由5.5mm接口供應DC9V電力,扣除基本需求,約輸出700mA,超過需求則需另接電源,
由USB提供電力給Arduino,只支援500mA,扣除本身需求,只能輸出約300mA,
由5.5mm接口供應DC9V電力,扣除基本需求,約輸出700mA,超過需求則需另接電源,
以免過載燒板,或馬達運作不正常等抖動等情形,
記得要將控制線接在有~記號的PWM腳位,
硬體準備↓
Arduino UNO R3
可調電阻,10K或5K或1k皆可
伺服馬達
DC9V1A電源器
接線數條
安裝時要注意接線以免燒毀電機,此例款接線為橙訊號/紅正電/棕負電↓
程式變數由A0接腳的電位器輸入訊號值0~1023,再轉換成要控制電機的角度,
因機器爪單邊的開合角約90度左右,因此轉換成0~100度,
若要安裝機器爪要注意調整好位置再鎖螺絲↓
#include
<Servo.h>
int _ABVAR_1_A0 =
0 ;
Servo servo_pin_9;
void setup()
{
servo_pin_9.attach(9);
}
void loop()
{
_ABVAR_1_A0 = map
( analogRead(0) , 0 , 1023 , 0 , 100 )
;
servo_pin_9.write(
_ABVAR_1_A0 );
delay( 50 );
delay( 50 );
}
若要安裝多軸的機器人手或腳,就增加電機就可增加轉動的關節了,
完成影片參考↓
2016年12月2日 星期五
Arduino UNO學習610.照度計模塊GY-30
Arduino UNO學習610.照度計模塊GY-30
對”光”的感應元件多是用光敏電阻,但光敏電阻的感應範圍較窄,
當要接收強光時,就需要BH1750這類的晶片,最亮可接收到60000以上的Lx,
Lux勒克斯Lx是一種光的亮度單位,請自上網搜知,此處不作解釋,
此模塊GY30便搭載了BH1750晶片,並使用3-5V電力
準備以下硬體並安裝↓
Arduino UNO R3
照度計模塊GY-30
接線
.VCC=電源正輸入
.SCL=IIC時脈
.SDA=IIC數據
.ADD=驅動位址,可不接或接地
.GND=低平電源共端
需先安裝資料庫到libraries中,參考下載點
下載目錄安裝到C:\Program
Files\arduino\libraries
再開啟arduino程式,於範例中會多個BH1750,選擇BH1750test上傳, ↓
以下測試環境為Win7+Arduino1.6.7版本+硬體Arduino
Uno R3↓
#include
<Wire.h>
#include
<BH1750.h>
BH1750 lightMeter;
void setup(){
Serial.begin(9600);
lightMeter.begin();
Serial.println("Running...");
}
void loop() {
uint16_t lux = lightMeter.readLightLevel();
Serial.print("Light: ");
Serial.print(lux);
Serial.println(" lx");
delay(1000);
}
完成上傳後打開監控視窗,開始回傳顯示亮度數據↓
大神網址參考
www.homautomation.org/2014/06/15/measure-light-with-arduino-and-bh1750-module
在WinXP測試時有編譯錯誤的情況,換了主機及Arduino
IDE軟體版本有些可以,
原因是XP部分程式與Arduino版本的相容問題,目前還找不到簡單的處理方式,
建議使用Win7上傳,
2016年7月26日 星期二
Arduino UNO學習522.紅外線搖控器控制元件
Arduino UNO學習522.紅外線搖控器控制元件
此篇要用搖控器來控制LED燈及蜂鳴器,
目前ArduBlock與該外部函式庫IRremote無法完全搭配,
因此由ArduBlock編寫部分程式,再手寫修改加入內建範例程式中,
確認已學習安裝IRremote函式庫,並已學會取得搖控器的編碼,
請參考學習520.紅外線搖控器,並將IRrecvDemo的程式碼取出待用,
下圖安裝了2種元件,自行預設搖控器找2個按鍵的編碼作對應,
分別左為紅外線接收器,蜂鳴器,LED燈另外加上野生遙控器一支↓
完成硬體後,第一步打開內建範例IRremote\IRrecvDemo,上傳後打開監控視窗,
隨便找遙控按鍵取得編碼,取紙張記錄下按鍵的編碼,並將範例檔案取出備用,
#include
<IRremote.h>
int RECV_PIN = 11;
IRrecv
irrecv(RECV_PIN);
decode_results
results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
delay(100);
}
第二步,打開ArduBlock編寫部分程式如下,將取得的遙控編碼加上0x00,
例FF30CF改為0x00FF30CF,並設定當遙控器碼FF30CF按下時則Pin2燈高3秒,
當遙控器碼FF18E7時Pin4蜂鳴器叫1秒,依圖找出ArduBlock的拼圖塊吧↓
上傳後先取得由ArduBlock作成的程式碼到筆記本或其他編輯軟體上,
unsigned
long _ABVAR_1_IR = 0UL ;
void
setup()
{
pinMode( 2 , OUTPUT);
pinMode( 4 , OUTPUT);
}
void
loop()
{
if (( ( _ABVAR_1_IR ) == (0x00FF30CFUL ) ))
{
digitalWrite(2 , HIGH);
delay( 3000 );
digitalWrite(2 , LOW);
}
if (( ( _ABVAR_1_IR ) == (0x00FF18E7UL ) ))
{
digitalWrite(4 , HIGH);
delay( 1000 );
digitalWrite(4 , LOW);
}
}
第三步要將內建的程式碼和ArduBlock編寫的程式碼二合一修改,
依內建的程式碼為主,加上setup宣告pin2和pin4,並將變數名稱_ABVAR_1_IR
修改為results.value,及ArduBlock的loop部分加入到程式中,變成如下↓
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(
2 , OUTPUT); //設定
pinMode(
4 , OUTPUT);
}
void loop() {
if
(irrecv.decode(&results)) {
Serial.println(results.value, HEX);
//加入遙控編碼動作
if ((
(results.value) == ( 0x00FF30CFUL ) ))
{
digitalWrite(2 , HIGH);
delay(
3000 );
digitalWrite(2 , LOW);
}
if ((
(results.value) == ( 0x00FF18E7UL ) ))
{
digitalWrite(4 , HIGH);
delay(
1000 );
digitalWrite(4 , LOW);
}
irrecv.resume(); //準備下一訊號
}
}
上傳後打開監控視窗,按下預設的遙控器鈕,是否可正常操作,
遙控器太遠時會接收到錯誤的編碼,試試家中其他的遙控器吧,
可近一步透過繼電器來控制其他家電啟動,或製作壓按式的自動門試試,
訂閱:
文章 (Atom)







































