Arduino のプログラムについて
下のプログラムはArduinoで、4個のバッテリーの電圧を取得して、あるバッテリー電圧が14.5V以上だったら、充電を停止し、14.5Vよりも低いバッテリーには充電をするようにしたいのです。例えば、4個のバッテリーの取得電圧が下の図の様な状況の時、それぞれのバッテリーに充電、充電停止を行いたいのです。
AnalogPin 0 → 14.8V → digitalPin 10 を充電停止(LOWにする)
AnalogPin 1 → 12.8V → digitalPin 11 を充電(HIGHにする)
AnalogPin 2 → 13.7V → digitalPin 12 を充電(HIGHにする)
AnalogPin 3 → 13.0V → digitalPin 13 を充電(HIGHにする)
質問:下のプログラムでArduinoに書き込んで動作させてみると、バッテリーの電圧は読み取っているのですが、digitalPin10~13のHIGH、LOWがうまくいきません。良い方法を教えてください。
void setup() {
Serial.begin(9600);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
}
void loop() {
float battery_v[4];
for(int i=0;i<4;i++){
float convert_v=analogRead(i)*5./1024;
battery_v[i]=convert_v/30*130;
delay(100);
Serial.print(i);
Serial.print(" is ");
Serial.println(battery_v[i]);
delay(100);
for(int r=9;r<14;r++){ // ここから下の命令がうまく動作しません。
if(battery_v[i]>14.5){ // digitalPin は10~13です。
digitalWrite(r,LOW); // すべてのdigitalWriteが
}else { // LOWのままか、HIGHのままになってしまいます。
digitalWrite(r,HIGH); //
}
}
}
delay(1000);
}
以上、宜しくお願い致します。
お礼
guiterさんありがとうございます。 どうも私の学力では今一つ理解に苦しんでおります。 でも、ヒントをいただけただけでも解決の糸口になりそうです。これからもう一度参考書などを紐解いて復習をして見ようと思っております。 又迷路に入り込みそうになったら、ここで質問させていただくかもしれませんので、よろしくお願いいたします。