2019年1月28日 星期一

雙A學習18112.藍芽0~255控制PWM燈強弱

雙A學習18112.藍芽0~255控制PWM燈強弱

Arduino加Android=雙A,
UNO裝上藍芽模塊與手機或平板連線,
此篇用HC05接UNO R3,由Win7及Arduino1.6.6安裝
再透過APP控制UNO,此篇要控制P9腳位LED燈的亮度,
務必將燈接在有PWM~符號的腳位上
並接上一220或330電阻到負腳位,
若要控制電機馬達需再加其他零件,因UNO的輸出電流只300mA,
圖↓


如不了解PWM及藍芽使用,請先學習之前的頁面,
用HC05或HC06都可以,硬體接好連電腦後藍芽板快閃,
開啟UNO IDE程式先上傳空程式確認連線無誤,
由於手機透過藍芽傳輸時會將字元轉換為ASCII碼,
雖然在監控視窗可看到字元或數字,
但對UNO來說只是字碼而非字元,
在ASCII碼裡,"0"字元碼為48,
因此需先將接收的ASCII碼值轉換為整數值0~255,
再傳給LED燈控制亮度


// 手機傳輸0~255控制PWM燈強弱
#include <SoftwareSerial.h> // 引用程式庫
SoftwareSerial BT(10,11); // 對應藍芽TX和RX
String num = "" ;
int i = 0 ;
long val ;

void setup(){
Serial.begin(9600); // 電腦鮑率
BT.begin(38400); // 藍芽鮑率
pinMode( 9 , OUTPUT); // 被控燈腳位需有pwm
}

void loop(){
command();
}

long command(){
 while(BT.available()){
   if(i==0){
    num = "";  
 }
num += BT.read()-48; // 扣除ASCII碼值
i++;
}
 val = num.toInt(); // 字串轉換成整數值
i=0 ;

Serial.println(val);
analogWrite(9,(val));
}

以上UNO軟硬體完成後,安卓手機可自行編寫,
或在APP商城有很多藍芽對Arduino用的程式,
以下使用Arduino bluetooth controller,


下載APP後
有4種功能,及調光調速,也有字串的輸入,
安裝APP後開啟藍芽,搜尋HC05連線輸入密碼後燈慢快閃,
點選數字棒功能來拖拉控制燈的亮度,
打開電腦監控視窗可顯示數值,



www.ee543.com

2019年1月19日 星期六

雙電網太陽能排風扇

雙電網太陽能排風扇

目的要達到有太陽時由太陽能發電給風扇運轉,
沒太陽時由室電供應電力,

選用的風扇為12公分電腦用排風扇,電壓DC12V約0.27A,
太陽能板為10W,標示18v,測試時空載21V,
2者電壓不同且太陽忽大忽小,要再接降壓器,
將太陽板降為穩定的DC12.5V(略大於設備耗電),

太陽能板-降壓模塊-風扇,接好線路即可使用,
風扇3.6w,太陽板15w,可驅動2個風扇,
焊接時注意高溫時間勿過長,以免燒換電路板,

 太陽發雖取之不盡,但穩定性不足,並非天天都有足夠日照,
因此在太陽能不足時搭配一般室內電源,
電路上可搭配繼電器PLC或微晶片等來控制切換,
此處配合輸入電壓選用DC12V線圈驅動的8腳繼電器,

當無驅動電力時腳位9+1和12+4為NC,
而驅動線圈通電時9+1和12+4為斷路,換成9+5和12+8為通路,
9和12為固定點接到風扇,
1和4為一組接一電力,5和8為一組接另一電力,
驅動線圈和風扇使用同一電力來源,故接短路,
接線時注意正負極,先用電池12v帶替太陽板,
另一端準備一AC110v轉DC12v1A電源器,接線測試,

準備其他材料,繼電器底座+接線台+DC母線+接線+底板
先在板上畫上大約位置並鑽孔,

螺絲固定接線台座線後開始配線,

完成後接上雙電力及風扇測試,沒問題就可上陣了,
因為安裝的地方是在天花板裡,而太陽板在屋頂,
所以就不上照片了,

台灣目前2019年電力來源約7成為火力發電,
來源包括燃煤.天然氣.石油,但這些都是進口能源,
燒煤甚至影響空氣品質,已慢慢改成天然氣,
約2成為核能發電,其餘為水力及綠能等等,
太陽能由於費用比火力和核能高,故推動不易,
而太陽能板和電池也是有壽命的,報廢後也是高污染的化學品,
要達到全綠能發電還有一段路...

www.ee543.com

2018年11月25日 星期日

雙A學習18051.藍芽模塊6針HC05+PWM調整

雙A學習18051.藍芽模塊6針HC05+PWM調整

此模塊透過藍芽通訊與手機或平板連線,Arduino+Android=雙A,
主式Master為模塊去搜尋手機設備的連線方式,
從式Slave為手機去搜尋模塊的連線方式
此篇學習6針式的HC05,是可調整為主式或從式的模塊,
使用時分為AT設定模式和使用模式,接線是不同的,
以下為Win7+Arduino1.6.6+UNO及安卓測試,圖↓



AT設定模式
AT模式的硬體接線如下
STATE不接
RXD接UNO的P0
TXD接UNO的P1
GND接UNO的GND
Vcc接UNO的5v
EN接UNO的3.3v
部份電路板印刷不同,腳位EN=KEY=WAKEUP是一樣的,圖↓

接好線路後UNO與電腦連結,查看HC05的燈,此時為快閃,
在電腦上執行IDE介面程式,選擇連接阜上傳空程式,確認連接正常,
按住模塊上的按鍵不放,並按下UNO重置鍵,
等UNO開機約2秒後放手,此時模塊上的燈為慢閃,則進入AT模式,
或移開GND線,再插回通電,
打開監控視窗,調整鮑率為38400,此為HC05的原廠預設,
選擇NL&CR,於輸入欄打入AT,部分板是有分大小寫差異的,
第一次會出現ERROE:(0),再次輸入AT,會顯示OK,
若輸入後無回覆顯示,請檢查RX及TX接線是否勞固,圖↓

進入AT模式後可輸入一般常用指令,
AT+ORGL 回復為出廠設定
AT+UART? 查鮑率
AT+ADDR? 查位址
AT+NAME? 查名稱
AT+PSWD? 查密碼
AT+ROLE? 查主/從模式

AT+UART=38400,0,0 修改鮑率為38400
AT+NAME=HC-05 修改名稱為HC-05
AT+PSWD=1234 修改密碼為1234
AT+ROLE=0 設為從模式
AT+ROLE=1 設為主模式
圖↓圖3357

使用模式
試著修改成自己要的設定,由於主式的連接較複雜,請務必設為從式,
其他設定以下用出廠值,完成設定後將機板及模塊先斷電斷線移除,
將模塊接線更換成"使用模式"的腳位連接,
RXD接UNO的P11
TXD接UNO的P10
GND接UNO的GND
Vcc接UNO的5v
EN=KEY=WAKEUP及STATE不用接

此篇要控制LED燈的亮度,務必將燈接在有PWM~符號的腳位上
並接上一220或330電阻到負腳位

如不了解PWM訊號,請先參考UNO320可變電阻調光
http://ee543.blogspot.com/2016/01/arduino320.html
硬體接好連電腦後HC05燈快閃,
開啟UNO IDE程式先上傳空程式確認連線無誤,
由於手機透過藍芽傳輸時會將字元轉換為ASCII碼,
雖然在監控視窗可看到字元或數字,
但對UNO來說只是字碼而非字元,
若要傳輸數字來作計算,需要其他轉換,
此篇僅依ASCII碼來作判別,若不了解ASCII請另搜尋,
得知字母小a編碼為97,小z為122,
因此將接收的碼a~z讀為97~122,透過程式轉換輸出0~255,
將程式上傳後打開監控視窗待機(鮑率9600及NL&CR)

//由手機發出a到z字元轉換成ASCII碼值控制PWM燈的強弱
#include <SoftwareSerial.h> // 引用程式庫
SoftwareSerial BT(10,11); // 對應HC05的TX和RX
int val;  // int及char顯示碼值及字元

void setup()
{
  Serial.begin(9600); // 電腦鮑率
  BT.begin(38400); // HC05鮑率
  pinMode( 9 , OUTPUT);  //被控燈腳位需有pwm
   }

void loop()
{
  if(BT.available() ) {
    val=BT.read();
    Serial.println(val);
    analogWrite(9,map(val,97,122,0,255)); // ASCII值97~122轉換為0~255給燈
    delay(100);
     }
}

以上UNO軟硬體部分算完成,再來手機部分,
可自行編寫或在APP商城有很多藍芽對Arduino用的程式,
以下使用Arduino bluetooth controller,圖

此APP有4種功能,從簡易的開關,和遊戲控制板,
及調光調速,也有字串的輸入,
安裝APP後開啟藍芽,搜尋HC05連線輸入密碼後燈慢快閃,
在APP選文字輸入a~z,會顯示字碼在電腦監控視窗上,
Pin9的LED燈會依字元等級亮度作反應,a不亮,z最亮,
該APP有滑塊功能,輸出數值0~255,
但到UNO只分辨0~9的ASCII碼值,
 

另試著將第3行int val;改為char val;
將顯示碼值改為顯示字元,但實際上使用不變,


www.ee543.com

2018年11月18日 星期日

U18111.字元控制PWM

U18111.字元控制PWM

由字元控制PWM訊號,w為加,x為減,10段輸入轉換為0~255輸出,
LED加220電阻於GND及Pin9,有~pwm腳位,
上傳程式後打開監控視窗輸入w及x調整燈亮度,



int _ABVAR_1_va = 0 ;
int _ABVAR_2_vb = 0 ;

void setup()
{
  Serial.begin(9600);
  pinMode( 9 , OUTPUT);
  _ABVAR_1_va = 0 ;
  _ABVAR_2_vb = 0 ;

}

void loop()
{
  delay( 100 );
  if (( ( ( Serial.read() ) == ('w') ) && ( ( _ABVAR_2_vb ) != ( 255 ) ) ))
  {
    _ABVAR_1_va = ( _ABVAR_1_va + 1 ) ;
    _ABVAR_2_vb = map ( _ABVAR_1_va , 0 , 10 , 0 , 255 )  ;
    Serial.println( _ABVAR_2_vb );
  }
  delay( 100 );
  if (( ( ( Serial.read() ) == ('x') ) && ( ( _ABVAR_2_vb ) != ( 0 ) ) ))
  {
    _ABVAR_1_va = ( _ABVAR_1_va - 1 ) ;
    _ABVAR_2_vb = map ( _ABVAR_1_va , 0 , 10 , 0 , 255 )  ;
    Serial.println( _ABVAR_2_vb );
  }
  analogWrite(9 , _ABVAR_2_vb);
}



不知啥原因接收字元有時沒反應
可帶入藍芽來接收控制
www.ee543.com

2018年11月13日 星期二

三用電表量測DCV直流電壓

三用電表量測DCV直流電壓

DC為直流電英文縮寫
V為電壓伏特
==為直流電符號
1V=1000mV

先準備任一電池,AA電池或方形鈕扣或手機電池皆可,
並在電表上找到DCV直流電壓的功能位置,
在該範圍內可能有2~1000或其他數字,
將檔位轉到數字最大的位置,如1000DCV或500DCV,
並將測試棒紅針接在電壓孔,黑針接COM,


將紅針端接電池正極,黑針端接負極,查看讀數..

因檔位在1000,為量測0~1000v範圍,
所以只顯示001或002,誤差大,
將檔位慢慢轉小到下一檔200及20,並讀數..
有些電表會有2000mV=2V及200mV=0.2V,
調到檔位200mV為量測0~0.2V範圍,
若電池電壓超過200mV=0.2v,電表顯示1,表示超過範圍,

就需轉會上一級到20v或2v(2000mv)量測顯示正確電壓範圍,

若已知欲量測的概略電壓,可直接切到該檔位,
若不清楚電壓,則需由大電壓位置慢慢往小數調整,
試著量測其他電池,並比對電池上的標示電壓,
就可由讀數來判斷電池是不是還有電,

確認電池量測學會了,另找帶變壓器插頭測試,
數據機或筆電充電器等等,
依據變壓器上的DC電壓標示來選用檔位或由大調小,

一般圓端子為內正外負,因此將紅針接內孔,黑針觸外圈,
若正負錯誤電子式會顯示負號,若指針式會指向負數邊,

用此功能可簡單的測試變壓器充電器是否故障,
或是線路是否通電,電池是否夠電力,
一般空載狀態量測應略高於標示電壓,
被量測的電壓超過電表最大負荷時將會燒壞電表,


www.ee543.com

2018年9月17日 星期一

電表淺談

電表是量測電力的一種工具,電表種類相當多種,
功能也很多樣,但不外乎是量測電壓和電流,
顯示方式主要為指針式和電子數字式,
指針可測瞬間資料,電子較易讀數,各有優缺,
電子科系主用三用電表,也有稱萬用電表,
除了測電壓電流外還可量測電阻及二三極管等,
圖~電表1
圖~電表2
圖~電表2指針

每家都會有的台電電表,也有機械或電子式,,主測AC電的耗電功率瓦特,
想要離峰用電計價的要跟台電申請電子式的,才有時間區隔的計價功能,
圖~電表3
圖~電表4

勾式電表主測電器的電流耗電,使用時勾單一火線或地線,不可正負都勾,
圖~電表5

其他還有裝在工業機台的,車上用的,量電池用的..等,
圖~電表6
圖~電表7
圖~電表8
現代人運用電作了相當多的事,作為一個現代人應更學習了解電的使用及安全

2018年5月5日 星期六

UNO學習18042.自製電子尺

UNO學習18042.自製電子尺

請參考及學習250超音波倒車雷達電子尺
及學習262螢幕轉接板IIC/I2C

準備以下硬體並安裝
Arduino UNO
超音波模組HC-SR04
IIC1602螢幕
7~12V電池或5v移動電源接方USB
雷射頭-非必要
接線

硬體連接如下↓
UNO的A4接螢幕轉接板SDA
UNO的A5接螢幕轉接板SCL
UNO的P2接超音波模塊Trig
UNO的P3接超音波模塊Echo


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

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //設定位址或0x27或0x20
unsigned long _ABVAR_1_SR = 0UL ;
int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin, int echoPin)
{
  long duration;
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(20);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  duration = duration / 59;
  if ((duration < 2) || (duration > 400)) return false;
  return duration;
}

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

void loop()
{
  _ABVAR_1_SR = ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 2 , 3 ) ;
  Serial.println(_ABVAR_1_SR); //在電腦監控視窗顯示
  lcd.clear();
  lcd.print(_ABVAR_1_SR); //在IIC螢幕顯示
  delay( 1000 ); //每秒取一次數據顯示
}


注意該超音波模組HC-SR04最大量測距離為400公分,超過顯示0,
IIC1602螢幕若無法顯示則需再確認該模組的通訊位址,
測試OK後要裝成移動式,但麵包板太大,又想裝上紅雷射來定位,
此時發現SMD貼片板本的CH340機板,有提供2個5V和1個3.3V的接口,
因此移裝到該機板,如此就不需要麵包板了↓


測試OK要開始安裝,又發現超音波模塊的安裝孔太小,需再加大,
並把紅雷射頭裝在底下,各部分螺絲及支架等組裝完成↓
窮則變,變則通,世界不斷變化前進,唯一不變的只有變
www.ee543.com