Re: Автоматическая регулировка яркости светодиодной подсветки.
Я конечно понимаю, что таких как я пол форума и вам тяжело всем отвечать, но не могли бы вы мне подсказать что делать ? Может мне можно как то воспользоваться проектом all in one? Или обязательно придётся докупать еще одну ардуино ?
Или вообще можно ли как то сделать не авто подсветку, а крутилкой отдельной возможно даже без ардуино?
Re: Автоматическая регулировка яркости светодиодной подсветки.
Только сейчас до меня дошло, подсветка то у тебя хардверная
1- убери все лишние скобки
2- активируй пины в секции Setup
3- как ты собираешься управлять одним и тем же пином
Re: Автоматическая регулировка яркости светодиодной подсветки.
Вроде всё исправил, только не понял что значит второй пункт :(
PHP код:
int analogPin = 7; // potentiometer wiper (middle terminal) connected to analog pin 3
int val = 7 ; // variable to store the value read
int mute = 2; //MUTE Выход для нажатии кнопки
int volu = 3; //Volume UP Выход для нажатии кнопки
int vold = 4; //Volume DOWN Выход для нажатии кнопки
int pt = 5; //Предыдущий трек
int nt = 6; //След трек
int ledPin = 9;
int sens = 0;
int light = 0;
#define PIN 7 //номер аналогового порта
#define LIMIT 10 //предел погрешности сопротивления
byte bytes[2];
int res_dt1, res_d;
unsigned long math_time,old_time,real_time;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(115200); // настроить скорость com порта
}
void loop()
{
res_d = analogRead(PIN); // прочитать данные АЦП
delay(30);
res_dt1 = analogRead(PIN); // прочитать данные АЦП
old_time = millis();
math_time = 0;
while(math_time < 300 && (res_dt1 > res_d-LIMIT && res_dt1 < res_d+LIMIT ))
{
real_time = millis(); //получить реальное время
math_time = real_time - old_time; //считаем длительность нажатия
res_dt1 = analogRead(PIN); // прочитать данные АЦП
}
if( math_time > 50) //если нет дребезга то короткое нажатие
{
bytes[0] = res_d & 255; // преобразовать в 2-байта
bytes[1] = (res_d & 768) >> 8;
Serial.write( bytes,2); // отправить прочитаное значение компьютеру
}
/////////////////////////////////////////////////////////////////////////////
val = analogRead(analogPin); // PIONEER read the input pin
if (val > 600)
{
pinMode(mute, INPUT);
pinMode(volu, INPUT);
pinMode(vold, INPUT);
pinMode(nt, INPUT);
pinMode(pt, INPUT);
}
if (val > 0 and val < 40) pinMode(mute, OUTPUT);
if (val > 60 and val < 120) pinMode(volu, OUTPUT);
if (val > 140 and val < 200) pinMode(vold, OUTPUT);
if (val > 300 and val < 420) pinMode(nt, OUTPUT);
if (val > 500 and val < 590) pinMode(pt, OUTPUT);
////////////////////////////////////////////////////////////
sens = analogRead(0);
if ((sens > 0 ) && (sens<10)) light = 10;
if ((sens > 10) && (sens<20)) light = 50;
if ((sens > 20) && (sens<30)) light = 100;
if ((sens > 30) && (sens<40)) light = 150;
if ((sens > 40) && (sens<50)) light = 180;
if ((sens > 50) && (sens<60)) light = 210;
if ((sens > 70) && (sens<80)) light = 230;
if (sens > 80) light = 255;
analogWrite(ledPin, light);
delay(10);
}
Re: Автоматическая регулировка яркости светодиодной подсветки.
Твой код выше подправил, проверяй
Re: Автоматическая регулировка яркости светодиодной подсветки.
В течении часа попробую! Спасибо!
Re: Автоматическая регулировка яркости светодиодной подсветки.
В общем, я понял что от скетча не многое зависит. Если залит скетч на регулировку подсветки, то всё равно реагирует на кнопки. Мне кажется что когда нажимаешь кнопку, ардуино начинает думать что датчик света отправил в неё такое значение :(
Если включен сериал монитор и датчик света показывает 400, при нажатии кнопки vol up становится 70 и соответственно подсветка пригасает. А вот если датчик света находится в полной темноте и в сериал мониторе показывает 0 то при нажатии кнопок это значение не меняется и яркость монитора остаётся минимальной. Мистика :(
Re: Автоматическая регулировка яркости светодиодной подсветки.
Ты какую программу на ПК используешь?
Я не помню что бы была программа сразу на подсветку и джойстик
Если AllInOne, то этой программе нужно посылать данные совсем по другому
Re: Автоматическая регулировка яркости светодиодной подсветки.
На пк использую Hotkey (старый, новые не подхватывают ардуино после сна). Но в тот момент когда был залит скет подсветки(только он изз первого поста), никаких программ на компьютере на запускал (кроме компилятора) Завтра попробую залить скетч подсветки и отключить ардуино от юсб, чтобы убедиться что компьютер не приделах.
Пробовал фоторезистор отключать от ардуиновских +5 на другие +5 (у вас покупал dc dc конвертер) но получилась какая то бяка, хотя по идее должно было быть всё норм..
Может не нужно куда то диод добавить или по другому всё подключить ? Или может можно в скетче сделать как нибудь чтобы он значения датчика воспринимал не 10 50 80 100 400, а -10 -50 -80 -100 -400 (ну как бы отрицательные значения)
Re: Автоматическая регулировка яркости светодиодной подсветки.
Если вдруг эту тему еще читают...
Сделал регулировку яркости по схеме с первой страницы, все работает, но при низких значениях яркости по монитору идут горизонтальные полосы. Изменение частоты PWM почему то только усугубляет ситуацию - начинает мерцать и при высокой яркости. Может конденсатор на gate мосфета сможет помочь? Не знаю только как выбрать емкость...
Re: Автоматическая регулировка яркости светодиодной подсветки.
Конденсатор нужно ставить параллельно самой подсветке