Делал ли кто работы по книге ?

Тема в разделе "Arduino & Shields", создана пользователем Максим B, 15 апр 2013.

  1. Максим B

    Максим B Гуру

    Всем привет. Делал ли кто-нибудь работы по книге Улли Соммера "Программирование микроконтроллерных плат Arduino/Freeduino"??? Интересует получился ли у кого пример 10.1 - регулятор уровня яркости с транзистором. Спасибо
     
  2. Unixon

    Unixon Оракул Модератор

    Что-то не получается?
     
  3. Максим B

    Максим B Гуру

  4. Максим B

    Максим B Гуру

    Собираю как на картинке -а все равно светодиод не загорается. Я понимаю, что в книге много ошибок, но я учусь.
     
  5. Unixon

    Unixon Оракул Модератор

    Светодиод исправен и включен в правильном направлении?
    Транзистор правильной полярности (NPN) ?
     
  6. Максим B

    Максим B Гуру

    Unixon -да все норм. Другие схемы собираю - все отлично.
     
  7. Максим B

    Максим B Гуру

    Больше по книге никто ничего не собирает ???* ))
     
  8. pyro

    pyro Гик

    Код (Text):
    // Franzis Arduino
    // LED Dimmer
     
    int helligkeit=0;
    int SW1=3;
    int SW2=2;
    int LED=11;
     
     
    void setup()
    {
      pinMode(SW1,INPUT);
      digitalWrite(SW1,HIGH);
      pinMode(SW2,INPUT);
      digitalWrite(SW2,HIGH);
    }
     
    void loop()
    {
     
      if(!digitalRead(SW1)&&digitalRead(SW2))
      {
        if(helligkeit<255)helligkeit++;
        analogWrite(LED,helligkeit);
        delay(10);
      }
      else if(digitalRead(SW1)&&!digitalRead(SW2))
      {
        if(helligkeit!=0)helligkeit--;
        analogWrite(LED,helligkeit);
        delay(10);
      }
     
     
    }
     
    Этот код?
     
  9. Максим B

    Максим B Гуру

  10. Максим B

    Максим B Гуру

    Первая картинка - это из книги, вторая то что у меня - может я что не прпвильно собираю????.
     

    Вложения:

    • IMG135.jpg
      IMG135.jpg
      Размер файла:
      324,9 КБ
      Просмотров:
      773
    • IMG134.jpg
      IMG134.jpg
      Размер файла:
      492,1 КБ
      Просмотров:
      736
  11. karnel

    karnel Нуб

    А светодиод вообще рабочий?
     
  12. Citrus

    Citrus Нерд

    что то в вашей схеме я светодиода не наблюдаю... а судя по коду он должен висеть на 11 ноге.
     
  13. Максим B

    Максим B Гуру

    В том то и дело, что в книге на схеме тоже светодиода нету (((( То ли код косячный, то ли в книге опечатка ((.
     
  14. pyro

    pyro Гик

    Судя по коду
    Код (Text):
    // Franzis Arduino
    // Dämmerungsschalter
     
    int LED=13;
    int LDR=0;
    int Poti=1;
    int cnt=0;
     
    void setup()
    {
      pinMode(LED,OUTPUT);
    }
     
    void loop()
    {
     
      if(analogRead(LDR)>analogRead(Poti))cnt=0;
      if(analogRead(LDR)<analogRead(Poti))cnt++;
       
      if(cnt>300)
      {
        digitalWrite(LED,HIGH);
        do
        {
          delay(5000);
        }while(analogRead(LDR)<analogRead(Poti));
        cnt=0;
        digitalWrite(LED,LOW);
      }
     
      delay(10);
     
    }
    о использует там, всроенный светодиод на 13 ноге.
     
  15. Citrus

    Citrus Нерд

    в вашем случае да светодиод на 13 ноге =)
     
  16. pyro

    pyro Гик

    Много ошибок в книге, я в скетчах не видел.
    Если программа не работает, вставте Serial.print( VAL), вместо VAL имена нужных переменных, в разных местах программы.
     
  17. pyro

    pyro Гик

    Добавьте в программу , вот зти, выделенные красным, строчки, включите монитор и посмотрите выполняются ли условия заданные в программе:

    // Franzis Arduino
    // Dämmerungsschalter

    int LED=13;
    int LDR=0;
    int Poti=1;
    int cnt=0;

    void setup()
    {
    Serial.begin(9600);//открываем последовательное соединение
    pinMode(LED,OUTPUT);//со скоростью 9600 бод
    }

    void loop()
    {

    if(analogRead(LDR)>analogRead(Poti))cnt=0;
    if(analogRead(LDR)<analogRead(Poti))cnt++;
    Serial.print(analogRead(LDR));
    Serial.print(" ");
    Serial.println(analogRead(Poti));
    if(cnt>300)
    {
    digitalWrite(LED,HIGH);
    do
    {
    delay(5000);
    Serial.print("Wnile");
    Serial.print(analogRead(LDR));
    Serial.print(" ");
    Serial.println(analogRead(Poti));
    }while(analogRead(LDR)<analogRead(Poti));
    cnt=0;
    digitalWrite(LED,LOW);
    }

    delay(10);

    }
     
  18. Максим B

    Максим B Гуру

    спасибо. попробую
     
  19. pyro

    pyro Гик

    Напиши о результатах. Возьми этот способ на вооружение, старайся пины 1 и 0 оставлять свободными в своих проектах. что бы была возможшость искать ошибки.
     
    Unixon нравится это.
  20. Sofron

    Sofron Нуб

    Судя по фото и в книге и у вас косяки.