Афторегулятор яркости дисплей
- Войдите на сайт для отправки комментариев
Светодиодный цифровой дисплей подключенный к ардуино через чип MAK7219.
Так же к ардуино подпаял делитель напряжения используя сопротивления 10к и фото резистор.
Программно не получается соединить значения яркости и переменную (intensity) и (i)
#include "LedControl.h"
int intensity = i; //яркость дисплея
int sensePin =0; //подключения фото резистора
LedControl lc=LedControl(12,11,10,1);
//Контакт SCL на RTC-модуле – к контакту A5 на Arduino
//Контакт SDA – к контакту A4
//Контакт VCC – к контакту 5V
//Контакт GND – к контакту GND
void setIntensivity() { //фото резистор
int val = analogRead(sensePin);
val = constrain(val, 40, 900);
int i = map(val, 40, 900, 5, 1); //Переменая яркости
}
void setup() {
lc.shutdown(0,false); //вкл max72xx
lc.setIntensity(0,intensity); //яркость дисплея(сигмента)
lc.clearDisplay(0); // очистка дисплея
}
void loop() {
//значения на дисплея 012345
lc.setDigit(0,5,0,true);
lc.setDigit(0,4,1,true);
lc.setDigit(0,3,2,true);
lc.setDigit(0,2,3,true);
lc.setDigit(0,1,4,true);
lc.setDigit(0,0,5,true);
setIntensivity();
}
Подскажите как это соединить яркость дисплея и ото резистор?
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
#include "LedControl.h" int intensity = i; //яркость дисплея int sensePin =0; //подключения фото резистора LedControl lc=LedControl(12,11,10,1); //Контакт SCL на RTC-модуле – к контакту A5 на Arduino //Контакт SDA – к контакту A4 //Контакт VCC – к контакту 5V //Контакт GND – к контакту GND void setIntensivity() { //фото резистор int val = analogRead(sensePin); val = constrain(val, 40, 900); int i = map(val, 40, 900, 5, 1); //Переменая яркости } void setup() { lc.shutdown(0,false); //вкл max72xx lc.setIntensity(0,intensity); //яркость дисплея(сигмента) lc.clearDisplay(0); // очистка дисплея } void loop() { //значения на дисплея 012345 lc.setDigit(0,5,0,true); lc.setDigit(0,4,1,true); lc.setDigit(0,3,2,true); lc.setDigit(0,2,3,true); lc.setDigit(0,1,4,true); lc.setDigit(0,0,5,true); setIntensivity(); }Вы там специально выключили нумерацию строк? По умолчанию она включена, а у Вас нет.
Хотите нормального разговора, выложите, наконец нормально - с номерами.
Пока же объясните, что такое Вы делаете в строке №ХЗ (
inti = map(val, 40, 900, 5, 1);) Чему эта самая Ваша переменная собирается быть равной. Яркость в 7219 - это чмсло от 0 до 15, если что.Поправьте вычисление яркости, поставьте печать в Сериал и убедитесь, что она считается правильно.
#include "LedControl.h" int intensity = i; //яркость дисплея int sensePin =0; //подключения фото резистора LedControl lc=LedControl(12,11,10,1); //Контакт SCL на RTC-модуле – к контакту A5 на Arduino //Контакт SDA – к контакту A4 //Контакт VCC – к контакту 5V //Контакт GND – к контакту GND void setIntensivity() { //фото резистор int val = analogRead(sensePin); val = constrain(val, 40, 900); int i = map(val, 40, 900, 5, 1); //Переменая яркости } void setup() { lc.shutdown(0,false); //вкл max72xx lc.setIntensity(0,intensity); //яркость дисплея(сигмента) lc.clearDisplay(0); // очистка дисплея } void loop() { //значения на дисплея 012345 lc.setDigit(0,5,0,true); lc.setDigit(0,4,1,true); lc.setDigit(0,3,2,true); lc.setDigit(0,2,3,true); lc.setDigit(0,1,4,true); lc.setDigit(0,0,5,true); setIntensivity(); }Яркость в 7219 - это число от 0 до 15 я об этом знаю. Тут всё понятно и просто яркость регулируется от 1-5 в зависимости от освещения 40-900. Проблема вот в чем выдает ошибку
Chasi_6.ino:4: error: 'i' was not declared in this scope
exit status 1
'i' was not declared in this scope
подскажите какой использовать Констант или Типы данных. Или вообще по другому сделать.
На эту ругается int intensity = i; //яркость дисплея
да
/* //Контакт SCL на RTC-модуле – к контакту A5 на Arduino //Контакт SDA – к контакту A4 //Контакт VCC – к контакту 5V //Контакт GND – к контакту GND */ #include "LedControl.h" LedControl lc = LedControl(/*dataPin*/12,/*clkPin*/ 11,/*csPin*/ 10,/*кол-во устройств*/ 1); void setIntensivity() { //фото резистор static int intensity = 0; int val = analogRead(/*пин фотодиода*/A0); val = constrain(val, 40, 900); intensity = map(val, 40, 900, 5, 1); //Переменая яркости lc.setIntensity(0, intensity); } //--------------main()-------------------------------- void setup() { lc.shutdown(0, false); //вкл max72xx setIntensivity(); lc.clearDisplay(0); // очистка дисплея } void loop() { //значения на дисплея 012345 lc.setDigit(0, 5, 0, true); lc.setDigit(0, 4, 1, true); lc.setDigit(0, 3, 2, true); lc.setDigit(0, 2, 3, true); lc.setDigit(0, 1, 4, true); lc.setDigit(0, 0, 5, true); setIntensivity(); } /*Скетч использует 2060 байт (6%) памяти устройства. Всего доступно 32256 байт. Глобальные переменные используют 227 байт (11%) динамической памяти, оставляя 1821 байт для локальных переменных. Максимум: 2048 байт. */А с какой целью строка 3 вообще написана? Что она должна делать? Если Вы думаете, что она устанавливает взаимосвязь между двумя переменными на всю оставшуюся жизнь, то так нет.
Эта строка бессмысленна.
Вы вообще можете менять яркость (без датчкиа просто менять). Напишите это.
Всё спасибо qwone получилось!
Я заметил, что любые попытки научить новичка, натолкнуть его на мысль, которая поможет самостоятельно найти решение своего вопроса, разбиваются о Квона, который просто дает новичку решение.
Квон, ты просто дитё малое и это вредничание, или думаешь, что ты помогаешь таким образом? Помогаешь новичку оставаться дураком?
Да, ладно, ну нравится человеку быть богом, а другим нравится оставаться невеждами - и пусть себе. Каждому своё.