南無ちゃんのブログ    https://namva.net

天下御免の夢中人=南無ちゃんは、今日も元気で明るく楽しく逞しく生きてゆく。

ポタ電とバッテリーの自動切換器の詳細

2024-08-17 16:20:39 | アマチュア無線
 昨日製作した「ポタ電とバッテリーの自動切換器」(以降「切換器」と呼ぶ)の詳細について記します。
 ブロック図と回路図を以下に示します。

 マイコンとして手持ちしていたArduinoNanoを使用しました。アナログ入力1点、デジタル出力1点を使っています。回路図中ではMY2と書いていますが、実際にはLY2-DC12を使用しました。図中DC/DCコンバータとArduinoNanoがGNDに接続されていませんが、記入ミスです。

 ArduinoNanoのソースコードを以下に示します。

#define DC12V 859
#define DC11V 790

int ADC0 = A0; // anaglog input for battery voltage
int ledPin = 13; // pin for the on board LED
int Switch = 2; // GPIO2 for the Swith, Barrery when HIGH, Mobile dengen when LOW
int BatteryVoltage = 0; // variable to store the value coming from the sensor
bool BatterySelect = true;


void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
pinMode(Switch, OUTPUT);
digitalWrite(Switch, HIGH);
Serial.begin(115200);
Serial.println("Program started!");
}


void loop() {
// read the value from the sensor:
BatteryVoltage = analogRead(ADC0);
Serial.println(BatteryVoltage);
if (BatterySelect){
if (BatteryVoltage < DC11V){
digitalWrite(Switch, LOW); // switch to the mobile power supply as power source
BatterySelect = false;
}
}else{
if (BatteryVoltage > DC12V){
digitalWrite(Switch, HIGH); // switch to the Battery as power source
BatterySelect = true;
}
}



// Blink led 1 sec period
// turn the ledPin on
digitalWrite(ledPin, HIGH);
delay(500);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
delay(500);
}


コメント