Светодиодный вольтметр

next-999
Offline
Зарегистрирован: 30.09.2013

Ребята помогите новечку, необходимо дописать код, написал небольшой код по управлению светом. Нужно к нему добавить вольтметр 5в. Например:

int val=0; 
int flag=0;

 void setup()     
 { 
          
      pinMode(11, OUTPUT);          
          pinMode(12, OUTPUT);
          pinMode(10, OUTPUT);
          pinMode(9, OUTPUT);
          pinMode(6, OUTPUT);
          pinMode(7, OUTPUT);
           pinMode(8, OUTPUT);
 } 

 void loop() 

 {  
      if
     
     
      (digitalRead(2)==HIGH)//если кнопка нажата ... 

      { 
        val++;// прибавляем к переменной 1 при каждой смене цикла. 
          
      delay(500);//небольшая защита от "дребезга" контактов кнопки 

      } 
      
      else        
      { 
        val=0; 
      }    
 
 { 
      if(digitalRead(4)==HIGH)//если кнопка нажата ... 
      { 

      digitalWrite(8, !digitalRead(8));
      
      ;//инвертируем состояние пина 

      delay(500);//небольшая защита от "дребезга" контактов кнопки 
      }     
 } 
 
      if(val>=5) 
      {   
         digitalWrite(10,HIGH);
         delay(100);
         digitalWrite(10,LOW);
         delay(100);
         digitalWrite(10,HIGH);
         delay(100);
         digitalWrite(10,LOW);
         delay(100);
         digitalWrite(10,HIGH);
         delay(100);
         digitalWrite(10,LOW);
         delay(100);
         digitalWrite(10,HIGH);
         delay(100);
         digitalWrite(10,LOW);
         delay(100);
 digitalWrite(7,!digitalRead(7));//инвертируем состояние пина
  digitalWrite(6,!digitalRead(6));//инвертируем состояние пина
          
        val=0; 
      } 
      

 

Если напряжение 4.1 - тогда горит светодиод 1

Если напряжение 4.0 - тогда горит светодиод 2

Если напряжение 3.9 - горит светодиод 3

Если напряжение 3.8 - моргает светодиод 3

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

А что не получается-то?

com
Offline
Зарегистрирован: 06.09.2013
next-999
Offline
Зарегистрирован: 30.09.2013

Вот вольтметр на светодиодах на всякий случай мб кому нужен будет с 3,6 до 4,0

 

 

int sensePin =0;
int ledPin = 9;
int ledPin2 = 13;
int ledPin3 = 8;

void setup()     
 { 

 pinMode(ledPin, OUTPUT);
 pinMode(ledPin2, OUTPUT);
 pinMode(ledPin3, OUTPUT);

 } 

 void loop() 
 


 {  
     int val = analogRead(sensePin);
  
if(val > 810) digitalWrite (ledPin3, HIGH);
else digitalWrite(ledPin3, LOW);

if(val > 780)
if(val < 810) digitalWrite (ledPin2, HIGH);
else digitalWrite(ledPin2, LOW);

if(val > 750)
if(val < 780) digitalWrite (ledPin3, HIGH),digitalWrite (ledPin, HIGH);
else digitalWrite(ledPin3, LOW),digitalWrite (ledPin, LOW),digitalWrite(ledPin2, LOW);

}

 

нужно замерить напряжение на аналоговом входе с помощью кода:

Берем этот код, записываем в чип, далее открываем сервис=> монитор порта

берем резистор 10К, кидаем на GND и на аналог 1, берем + и - блока питания, + кидаем на аналог 1, - на GND.

когда меняем напряжения с 0 до 5 вольт, в окне будет показывать значения от 0 до 1025. выбераем подходящия значения и вписываем их в (val > "значение") в первом коде.

он будет показывать значения, 

int sensePin=1;
void setup() {
  analogReference(DEFAULT);
  
  Serial.begin(9600);
}

void loop() {
  Serial.println(analogRead(sensePin));
  delay(500);
}

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

next-999, какой-то у вас нетрадиционный синтаксис.  Рановато вам раздавать советы )

next-999
Offline
Зарегистрирован: 30.09.2013

может быть) но код работает как нужно, а подобного я ненашел, и никто нечего не сказал) поэтому лучше что-то чем нечего.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

next-999, вы всё же почитайте про фигурные скобки, про логические операторы && ..