Помогите разобраться Новичку
- Войдите на сайт для отправки комментариев
Вс, 05/10/2014 - 11:39
Задача состоит в том, что бы сделать лампу которая будет плано включаться с утра и выключаться также плавно вечером по заданным параметрам. В лампе 7 разных каналов на каждый канал своя яркость.
Имеется:
1. Led сборка 7 мощных светодиодов
2. Драйвер Leddrv-24v-x7 MeanWell
3. Блок питания 12v
4. Китайский аналок Ардуино леонардо
5. Таймер реального времени
6. Пульт д\у ( использование под вопросом)
Фото прилагаются
Хотите получить готовый код - http://arduino.ru/forumy/ishchu-ispolnitelya
А гуглить за вас как менять яркость светодиодов никто не будет.
Когда состряпаете какой то скетч, покажите его и грамотно зададите вопросы что у вас не получается, тогда есть шанс получить помощь.
Добрый день! Спасибо, что отписались.
За прошедшее время понял в чем у меня загвоздка )
Мне нужно проверить работоспособность конроллера.
Я загружал пробную программу blink в в arduino ide было написано что загружено, а свтодиоды мигали только при загрузке потом нет. Хочется определить рабочая ли плата или в чем проблема почему не мигают. Когда выбираю плату ардуинолеонардо при загрузке диоды мигают потом тухнут остается 1 который показывает питание. Когда ставлю ардуино micro pro светятся все светодиоы и мигают при загрузке. Светодиод должен мигать постоянно после загрузки "Blink" ?
При загрузке примера blink должен мигать встроенный светодиод на 13 пине.
Но может и 13 пин быть не рабочим, а все остальные в порядке.
Как я понимаю для полноценной проверки платы нужен отдельный светодиод с резистором ? И мультиметр для проверки каналов ?
Посоветуйте Литературу или сылку на хороший обучающий материал с комментариями если такие имеются)
Bот maksim выкладывал код для проверки ардуины
#define FIRST_PIN 0 // первый вывод #define LAST_PIN 19 // последний вывод void Test1(byte pin) { if(pin < 10) Serial.print(" PIN: "); else Serial.print(" PIN: "); Serial.print(pin); pinMode(pin, OUTPUT); digitalWrite(pin, 0); Serial.print(" LOW: "); if(!digitalRead(pin)) Serial.print("OK "); else Serial.print("FAIL"); digitalWrite(pin, 1); Serial.print(" HIGH: "); if(digitalRead(pin)) Serial.print("OK "); else Serial.print("FAIL"); pinMode(pin, INPUT); Serial.print(" PULL UP: "); if(digitalRead(pin)) Serial.print("OK "); else Serial.print("FAIL"); digitalWrite(pin, 0); } void Test2(byte pin) { Serial.print(" "); pinMode(pin, OUTPUT); digitalWrite(pin, 1); delay(5); if(!digitalRead(pin))Serial.println("SHORT"); else Serial.println("OK"); pinMode(pin, INPUT); digitalWrite(pin, 0); } void setup() { Serial.begin(9600); Serial.println("Test of short circuit on GND or VCC and between pins:"); Serial.println(); for(byte i = FIRST_PIN; i <= LAST_PIN; i++) { for(byte j = FIRST_PIN; j <= LAST_PIN; j++) { pinMode(j, INPUT); digitalWrite(j, 0); } Test1(i); for(byte j = FIRST_PIN; j <= LAST_PIN; j++) { pinMode(j, OUTPUT); digitalWrite(j, 0); } Test2(i); } for(byte j = FIRST_PIN; j <= LAST_PIN; j++) { pinMode(j, INPUT); digitalWrite(j, 0); } } void loop() {}Посмотрите видеоуроки Джероми Блума , их кажется 13 с переводом
Что должно произойти после запуска программы для проверки кода?
Посмотреть в Serial
Изучаю)
ШИМ сигнал 5в. Плата питается по USB от ПК этого хватит или нужно подключать к блоку питания ?
Ну юсб и даёт 5 вольт.
http://easyelectronics.ru/podklyuchenie-mikrokontrollera-likbez.html
В этой статье и других статьях цикла "AVR. Учебный курс" достаточно доходчиво (в картинках) разъясняют много вопросов. Посмотрите. Там правда програмный код представлен либо на С либо на ASM, но в остальном много полезного
С 2.5v светодиодом резистором 220ом опыт получился работает и мигает и яркость прибавляется убавляется.
Когда подключаю драйвер ни чего не происходит. Из драйвера есть специальный выход к контроллеру.
Все работает землю от контроллеру к драйверу не подключил )))) Спасибо за помощь начинаю писать программу )
Следующий вопрос ) Пульт и таймер реального времени пока разбираюсь сам.
Время работы и задержку можно прописать програмно и не ставить лишний чип ?!
Что бы регулировать температуру можно поставить к светодиоду "термический резистор" с винтелятором чтоб охлаждать при перегреве ?!
Время работы и задержку можно прописать програмно и не ставить лишний чип ?!
Что бы регулировать температуру можно поставить к светодиоду "термический резистор" с винтелятором чтоб охлаждать при перегреве ?!
Для времени нужен отдельно ардуино и для задержки еще один. И заместо радиатора тоже поставьте ещетодну ардуино с датчиком температуры и кондиционером.
Тоесть тупые вопросы задавать можно. А если ответ с сарказмом, то тупой вопрошающий сразу обижается и начинает ругаться... ну в общем показательно.
Тема закрыта всем Спасибо!
помогите понять как , через последовательный порт ввести символы (например 12345678 или hello) и чтобы ардуино также ответил в последовательный порт 12345678 или hello. Это нужно усложнить?
int x = 0; void setup() { Serial.begin(9600); } void loop() { x = Serial.read(); Serial.println(x); delay(1000); }помогите понять как , через последовательный порт ввести символы (например 12345678 или hello) и чтобы ардуино также ответил в последовательный порт 12345678 или hello. Это нужно усложнить?
int x = 0; void setup() { Serial.begin(9600); } void loop() { x = Serial.read(); Serial.println(x); delay(1000); }Почитать про типы переменных?
Дружище, этот вопрос наталкивает меня на мысль, что попытка записать код в Arduino и посмотреть потом в Serial monitor так и не предпринималась...
Почитать про типы переменных?
я почитал, ну как почитал ... чуть чуть
переменные глобальные локальные.. не наверно не прото...
Дружище, этот вопрос наталкивает меня на мысль, что попытка записать код в Arduino и посмотреть потом в Serial monitor так и не предпринималась...
я запускал! как щас помню
проблема выглядит так я ему 1 мне он 49, ему 8 он 56.
что то с таблицей ASCII я ему в Char он мне в DEC, нужно это как то преобразовать? и еще он каждую цифру отдельно пережевывает 18 выглядит как 49,56
кароче ума не хватает, как называется эта штука?
зарание спасибо
Гыыы
не смог интерпретировать ваш код в код ардуины, но вы хотя бы попытались мне конкретно помочь. в отличии от остальных, одна вода.
вот что у меня вышло, как я хотел!
int x = 0; // переменная для хранения байта данных, int y = 0; char mas[128];// массив void setup() { Serial.begin(9600); //последовательный порт } void loop() { x = 0; // сброс перемен memset(mas, '\0', 128); // Очищаем массив, заполняеме его нулями if (Serial.available()>0) // ждем даные, борльше нечего { delay(200); // дожидаемся всех данных x = Serial.available(); // получ длин строку и запи с ее в перемен for(int i = 0; i < x; i++) { mas[i] = Serial.read(); } Serial.println (mas); } }меня интересует эта строчка очищение массива, memset(mas, '\0', 128); эта команда негде не упоминается. Что это из какой оперы?, как еще можно очистить массив? Как можно написать этот код по другому?
Гуглю на полставки.
http://www.cplusplus.com/reference/cstring/memset/
2 bil711,
Данные хранятся посимвольно в аскиикоде. 1 = 48+1 = 49, 8 = 48+8 = 56, 18 = 49;56
По работе с сериал (как код упростить) тут же есть готовая справка:
http://arduino.ru/Reference/Serial/Available