Помогите написать простенькую программу.
- Войдите на сайт для отправки комментариев
Ср, 15/06/2016 - 00:46
Помогите написать код: при кручении потенциометра по часовой стрелке один светодиод увеличивает яркость, а второй наоборот - уменьшает.
поможем конечно, давай свой код... или давай
я начну...
поможем конечно, давай свой код... или давай
я начну...
Типа крестики-нолики или морской бой?
Вроде как так.
.
поможем конечно, давай свой код... или давай
я начну...
Вот мой код, но он только для 1 диода.
продолжаем...
ну пины свои поставь...
продолжаем...
ну пины свои поставь...
Загрузил вот такой код, не работает.
Два раза на 4 зачем дЕлите?
У вас диапазон для первого леда получается 0 - 64, для второго 255 - 191
Загрузил вот такой код, не работает.
Ну это не совсем правда. Он работает, просто не особо заметны изменения. Выше в посте уже было написано. Из вот этой строки
нужно убрать "/4".
с A0 вы получаете значение в диапазоне 0-1023, а на пины 9 и 11 выдавать должны 0-255, в итоге просто при подаче на пины вы и делите полученные 0-1023 на 4 и получаете 0-255. Перейдите выше по ссылкам на функции analogRead() и analogWrite(), там все описано.
Ну это не совсем правда. Он работает, просто не особо заметны изменения. Выше в посте уже было написано. Из вот этой строки
нужно убрать "/4".
с A0 вы получаете значение в диапазоне 0-1023, а на пины 9 и 11 выдавать должны 0-255, в итоге просто при подаче на пины вы и делите полученные 0-1023 на 4 и получаете 0-255. Перейдите выше по ссылкам на функции analogRead() и analogWrite(), там все описано.
Логичнее и красивее сначала поделить....
Загрузил вот такой код, не работает.
Ну это не совсем правда. Он работает, просто не особо заметны изменения. Выше в посте уже было написано. Из вот этой строки
нужно убрать "/4".
с A0 вы получаете значение в диапазоне 0-1023, а на пины 9 и 11 выдавать должны 0-255, в итоге просто при подаче на пины вы и делите полученные 0-1023 на 4 и получаете 0-255. Перейдите выше по ссылкам на функции analogRead() и analogWrite(), там все описано.
Исправил, всё равно плохо работает, при максимальном значении потенциометра диод не тухнет.
выводите в сериал значения которые у вас получаются при максимальном потенциометре, и отрегулируйте диапазон функцией map http://arduino.ru/Reference/Map
Куда регулировать то, я просто новичок в программировании пока. С таким кодом всё тоже самое
просто когда у Вас потенциометр выкручен полностью у Вас на вход приходит не 0, а скажем 400, попробуйте в строках 16 и 18 вместо первого 0 подставлять значения 200,300,400,500 пока не получите желаемый результат
Видимо "SuperTesto" нужно более конкретное описание действий. Ну не всем охото рыться долгое время в источниках нужной инфы, чтобы сделать простенькую програмку. Поэтому напишу более развернуто.
Сперва залейте такой скетч и откройте монитор компорта(в верхнем правом углу arduino IDE).
Должны приходить значения в диапазоне 0-1023 приходящие с потенциометра(правда будет спамить. Если спам мешает, то раскомментируйте строку //delay(1000);). Выкрутите потенциометр до предела на минимум - посмотрите что приходит на компорт, потом выкрутите до максимума - снова гляньте значения в компорту. В принципе это и есть ваш "реальный" диапазон. От него и нужно отталкиваться. Если дальше не получится, то пишите.
P.S. а да, я выкинул из вашего кода все касающееся val2. У вас данные приходят с одного потенциометра. Просто первый светодиод у вас будет увеличивать яркость симметрично возрастанию значения на потенциометре(от 0 до 255), а второй наоборот это полученное значение будет отнимать от маскимума и уменьшаться(от 255 до 0).