Светодиодный вольтметр
- Войдите на сайт для отправки комментариев
Втр, 11/03/2014 - 16:53
Ребята помогите новечку, необходимо дописать код, написал небольшой код по управлению светом. Нужно к нему добавить вольтметр 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
А что не получается-то?
http://arduino.ru/Reference/AnalogRead
Вот вольтметр на светодиодах на всякий случай мб кому нужен будет с 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); }next-999, какой-то у вас нетрадиционный синтаксис. Рановато вам раздавать советы )
может быть) но код работает как нужно, а подобного я ненашел, и никто нечего не сказал) поэтому лучше что-то чем нечего.
next-999, вы всё же почитайте про фигурные скобки, про логические операторы && ..