Помогите новичку =)

Тема в разделе "Arduino & Shields", создана пользователем Steel_Wolf, 5 окт 2014.

  1. Steel_Wolf

    Steel_Wolf Нуб

    Друзья, здравствуйте!
    Хочу попросить помощи у более продвинутых программеров) Проблема такая: совсем недавно начала изучать arduino, хотелось бы спросить что стоит почитать, посмотреть, и т.д. В данный момент читаю Массимо Банзи. И еще поблемка с кодом, хотелось что бы светодиод плано менял яркость с 0 до максимума, навоял я что то вот такое:

    int ledPin = 11;
    void setup()
    {
    pinMode(11, OUTPUT);
    }
    void loop()
    {
    int ledLevel = 0;
    delay(100);
    ledLevel = ledLevel +51;
    delay(100);
    if (ledLevel > 153) ledLevel = 0;
    }

    Подскажите пожалуйста, где мои ошибки, и как можно реализовать?
    Скоммутировал через резистор 220ом, после загрузки скетча светодиод не реагирует.

    Пыс.Пыс. Прошу сильно не пинать, только начинаю изучение. Заранее благодарен за ответы =)
     
  2. NR55RU

    NR55RU Гик

    Я не стану пояснять ваш код и почему он не работает, я лучше дам вам пару ссылок в которых вы найдете нужные вам ответы :)

    Хорошие видео-уроки для начинающих на русском.
    Проект: Маячок с нарастающей яркостью
    А тут есть список книг которые могут быть вам интересны. Особенно если вы совсем начинающий в программировании, рекомендую изучать язык Си по этой книге. Так как она на мой взгляд лучшее что я только видел для совсем начинающих по Си.

    Ну и вообще, загляните на Вики амперки, там они очень хорошо потрудились что бы дать много полезной информации. :)
     
  3. vvr

    vvr Инженерище

    В IDE в разделе "примеры " есть пример Fade - изменение яркости светодиода, почитайте внимательно коментарии
     
  4. ets

    ets Нерд

    Я бы так написал хД
    Код (Text):
    int ledPin = 11;
    int ledLevel = 0;
    int brightnessStep = 5; // шаг нарастания
    int brightnessMax = 153; // максимальный уровень
    void setup()
    {
    pinMode(ledPin, OUTPUT);
    }
    void loop()
    {
    ledLevel = ledLevel + brightnessStep;
    if (ledLevel > brightnessMax) ledLevel = 0;
    analogWrite(ledPin, ledLevel); // из-за отсутствия этой строчки у тебя не горит светодиод
    delay(100);
    }
     
     
    Последнее редактирование: 6 окт 2014
  5. SSnick

    SSnick Гик

    Помогите новичку тоже) Спасибо

    Есть три кнопки, при нажатии каждой горит соотвествующая лампочка (кнопки через делители напряжения подают сигналы на аналоговые входы):

    if(A>0)
    digitalWrite(pin1,HIGH);
    if(B>0)
    digitalWrite(pin2,HIGH);
    (тут все работает правильно)

    Но чтобы включить третью лампочку необходимо нажать третью кнопку (С) и чтобы первые две не были нажаты. При этом если нажата 1 или 2 кнопка, то третья лампочка не должна загораться, а загораются соотвественно 1 или 2 лампочка
    Вроде должно выглядеть так:
    if(C>0&&(A==0||B==0))

    но у меня почему то не работает как надо. При нажатой 1 или 2 кнопки у меня третья лампочка всеравно загорается.

    Голову сломал, подскажите где ошибка логики построения условия?
     
  6. SSnick

    SSnick Гик

    Оказалось ответ проще чем думал:
    (C>0&&A==0&&B==0)
    всем спасибо
     
  7. gnom537

    gnom537 Нуб

    {
    analog=analogRead(14);//считываем сигнал с пина АЦП

    if(analog>0&&analog<1020) //здесь я сравниваю значение входящего сигнала для прихожая

    {
    if(digitalRead(2)==HIGH&&flag_1==1)//если свет не включен
    {
    digitalWrite(2,!digitalRead(2)); //меняем состояние вывода на противоположный
    flag_1=0;

    }
    if(digitalRead(2)==LOW&&flag_1==0)//если свет включен
    {
    // digitalWrite(2,!digitalRead(2)); //меняем состояние вывода на противоположный
    flag_1=1;//обнуляем переменную flag
    }
    Serial.print("flag_1= ");
    Serial.print(flag_1);
    Serial.print(" PIN-2= ");
    Serial.println(digitalRead(2));
    }
    други дорогие, помогите наладить код. кнопок 10 на аналог 0, 10 выходов пин2-пин12, 1 нажатие кнопки должно изменять одно состояние пина! то биш будет аналоговый выключатель на 10 кнопок.
     
  8. SSnick

    SSnick Гик

  9. gnom537

    gnom537 Нуб

    спасибо, но с аналоговым входом я уже разобрался, меня интересует как инвертировать цифровой выход при опросе этого же самого выхода при совпадении нажатия той или иной кнопки. то есть один аналоговый вход на 10 кнопок и нужно включать выключать цифровые выходы запрашивая их состояние. а тут загвоздка, они у меня включаются, а потом переключения уже не происходит. так и висит включенный пока не сбросишь!
     
  10. vvr

    vvr Инженерище

    Показывай свой код .
    И приучайся писать с пробелами. То что ты выложил в теме читать нормально нельзя - тогда и вероятность помощи ну резко снижается. (надеюсьтыпонялочёмя:))