Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 41

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Новичок
    Регистрация
    19.12.2010
    Возраст
    54
    Сообщений
    4
    Вес репутации
    0

    Лампочка Ардуино для чайников!

    Всем привет! Прочитав про это устройство очень захотелось такое заиметь. Только вот остается один нюанс-никак не могу найти талкового самоучителя по данному устройству... Описания языка на русском http://rln.nnov.ru/index.php?pid=14 не принесло никакого результата...подскажите пожалуйста-где найти достойную литературу, где все разжевано с нуля...заранее всех благодарю п.с. советовали почитать на хабре--тоже толком ничего там не написано...

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Ардуино для чайников!

    Проще начать писать свой скетчь и в процессе задавать вопросы.
    Для начала вот здесь почитай http://www.compcar.ru/forum/showthread.php?t=4296

  3. #3
    Местный
    Регистрация
    10.11.2010
    Сообщений
    144
    Вес репутации
    201

    По умолчанию Re: Ардуино для чайников!

    Цитата Сообщение от eyler Посмотреть сообщение
    ...никак не могу найти талкового самоучителя по данному устройству...
    В основной программе скетче-писания неплохие примеры - открываете, изучаете, прошиваете, пробуете чуть переделывать под свои мысли... Очень хорошо всё начинает пониматься.

  4. #4
    Новичок
    Регистрация
    19.12.2010
    Возраст
    54
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: Ардуино для чайников!

    Спасибо огромное! С нетерпением жду еще ответов!

  5. #5
    Новичок
    Регистрация
    28.09.2013
    Сообщений
    16
    Вес репутации
    141

    По умолчанию Re: Ардуино для чайников!


  6. #6
    Новичок
    Регистрация
    06.10.2014
    Сообщений
    7
    Вес репутации
    126

    По умолчанию Re: Ардуино для чайников!

    Здравствуйте.
    Очень понравились Ваши советы. Следуя им я написал скетчь и у меня появились вопросы.Это прибор который отслеживает качество покрытия проволоки.Три датчика информируют о браке и посылают сигнал о нём.Счётчик считает кол-во оборотов колеса и переводит их в метры. Вся информация выводиться на экран. Проект сделан на Arduino Nano V 4.0. Вот скетчь .

    PHP код:
    boolean ImpulsOldImpuls;
       
    boolean ImOldIm;
       
    boolean ImpOldImp;
       
    boolean ImpuOldImpu;
       
    boolean ImpulOldImpul;
       
    int a=0
       
    byte inprobelPin=2;
       
    byte innarostPin=3;
       
    byte insbrosPin=4;
       
    byte inshetPin=5;
       
    byte inkoneshPin=6;
       
    byte ledPin=7;  
      
    byte lampPin=8;
      
    byte sirenaPin=9;
       
    void setup()          // начальные установки
    {
      
      
    Serial.begin(9600);  // установка скорости работы серийного порта на 9600 бит/сек
      
    pinMode(inprobelPinINPUT);  // установка 2-его порта на ввод данных пробел
      
    pinMode(innarostPinINPUT);  // установка 3-его порта на ввод данных нарост
      
    pinMode(insbrosPinINPUT);  // установка 4-ого порта на ввод данных пробел 2
      
    pinMode(inshetPinINPUT);  // установка 5-ого порта на ввод данных счётчик
      
    pinMode(inkoneshPinINPUT);  // установка 6-ого порта на ввод данных конец счёта
      
    pinMode(ledPinOUTPUT);  // установка 7-ого порта на вывод данных лампа 1
      
    pinMode(lampPinOUTPUT);  // установка 8-ого порта на вывод данных лампа 2 
      
    pinMode(sirenaPinOUTPUT);  // установка 9-ого порта на вывод данных сирена
     
    }

    // Программа проверяет  порты на наличие на нём сигнала и посылает ответ в 
    // виде текстового сообщения на последовательный порт компьютера
    void loop()                    // тело программы
    {
     
    OldImp=Imp;
      if (
    digitalRead(inprobelPin) == HIGH)  // условие на опрос 2го порта
      
    {
      
    Imp=true;
      
    digitalWrite(ledPin,HIGH);//включился лампа 1
      
    digitalWrite(sirenaPin,HIGH);//включился сирена
     
    }
      else
     {
     
    Imp=false;
     
    digitalWrite(ledPin,LOW);//выключился лампа 1
      
    digitalWrite(sirenaPin,LOW);//выключился сирена
     
    }
     if (
    Imp && !OldImp)
     {
      
        
    Serial.println(v());        // отправка сообщения в виде  цифры равной метражу на COM-порт
         
    Serial.println('P');        // отправка сообщения в виде буквы «probel» на COM-порт
       
     
    }
     
    OldImpu=Impu;
      if (
    digitalRead(innarostPin) == HIGH)  // условие на опрос 3 го порта
      
    {
      
    Impu=true;
      
    digitalWrite(lampPin,HIGH);//включился лампа 2
      
    digitalWrite(sirenaPin,HIGH);//включился сирена
     
    }
      else
     {
     
    Impu=false;
     
    digitalWrite(lampPin,LOW);//выключился лампа 2
     
    digitalWrite(sirenaPin,LOW);//выключился сирена
     
    }
     if (
    Impu && !OldImpu)
     {
        
    Serial.println(v());        //отправка сообщения в виде  цифры равной метражу на COM-порт
            
    Serial.println('N');        // отправка сообщения в виде буквы «narost» на COM-порт
     
    }
      
    OldImpul=Impul;
        
    OldIm=Im;
      if (
    digitalRead(insbrosPin) == HIGH)  // условие на опрос 4го порта
     
    {
      
    Im=true;
      
    digitalWrite(ledPin,HIGH);//включился лампа 1
      
    digitalWrite(sirenaPin,HIGH);//включился сирена
     
    }
      else
     {
     
    Im=false;
     
    digitalWrite(ledPin,LOW);//выключился лампа 1
      
    digitalWrite(sirenaPin,LOW);//выключился сирена
     
    }
     if (
    Im && !OldIm)
     {
      
    Serial.println(v());        // отправка сообщения в виде  цифры равной метражу на COM-порт
         
    Serial.println('P');        // отправка сообщения в виде буквы «probel» на COM-порт;
      
    }
      
    OldImpuls=Impuls;
      if (
    digitalRead(inshetPin) == HIGH)  // условие на опрос 5го порта
     
    {
      
    Impuls=true;
     }
      else
     {
     
    Impuls=false;
     }
     if (
    Impuls && !OldImpuls)
     {
      
    a++;
      }

      
      if (
    digitalRead(inkoneshPin) == HIGH)  // условие на опрос 6 го порта
      
    {
      
    Impul=true;
     }
      else
     {
     
    Impul=false;
     }
     if (
    Impul && !OldImpul)
     {
        
    Serial.println(v());        // отправка сообщения в виде  цифры равной метражу на COM-порт
         
    Serial.println('E');        // отправка сообщения в виде буквы «end» на COM-порт
      
    }
    }
      
     
    float v()
    {
     
    float s;
      
    s=a;
      
    s*=1.2;
     return 
    s;
      } 
    Программа запускается и работает но возникают вопросы
    1 .Почему так медлено .Очень медлено.Входы недоступны несколько секунд,а он должен счетать .
    2. Не могу прописать narost при выводе на COM-порт ,выводит какие то цифры.
    3. При подключение внешнего питания на плату 12 V входы начинают самопроизвольно срабатывать.
    Помогите пожалуйста найти ошибки .
    Прошу строго не судить ведь это мой первый мой проект.
    Последний раз редактировалось Chip; 07.10.2014 в 11:35.

  7. #7
    Гуру Аватар для reanon
    Регистрация
    02.03.2009
    Возраст
    45
    Сообщений
    927
    Вес репутации
    690

    По умолчанию Re: Ардуино для чайников!

    для начало чтоб не прыгали сами данные надо в скетче подтянуть встроенные резисторы
    пример
    pinMode(inprobelPin, INPUT); //объявляешь пин входом
    pinMode(inprobelPin, LOW); // подтягиваешь встроенный резистор на минус

  8. #8
    Новичок
    Регистрация
    06.10.2014
    Сообщений
    7
    Вес репутации
    126

    По умолчанию Re: Ардуино для чайников!

    Сделал как Вы посоветовали.

    Serial.begin(9600); // установка скорости работы серийного порта на 9600 бит/сек
    pinMode(inprobelPin, INPUT); // установка 2-его порта на ввод данных пробел
    pinMode(inprobelPin, LOW);
    pinMode(innarostPin, INPUT); // установка 3-его порта на ввод данных нарост
    pinMode(innarostPin, LOW);
    pinMode(insbrosPin, INPUT); // установка 4-ого порта на ввод данных пробел 2
    pinMode(insbrosPin, LOW);
    pinMode(inshetPin, INPUT); // установка 5-ого порта на ввод данных счётчик
    pinMode(inshetPin, LOW);
    pinMode(inkoneshPin, INPUT); // установка 6-ого порта на ввод данных конец счёта
    pinMode(inkoneshPin, LOW);
    pinMode(ledPin, OUTPUT); // установка 7-ого порта на вывод данных лампа 1
    pinMode(lampPin, OUTPUT); // установка 8-ого порта на вывод данных лампа 2
    pinMode(sirenaPin, OUTPUT); // установка 9-ого порта на вывод данных сирена
    Но к сожалению это никак не помогло. Входы сами возбуждаются.
    Может мне не повезло и попалась бракованная плата?

  9. #9
    Пользователь
    Регистрация
    19.01.2010
    Возраст
    51
    Сообщений
    33
    Вес репутации
    270

    По умолчанию Re: Ардуино для чайников!

    Было бы неплохо схемку набросать. Куда, чего и как подключали. Математика и железо взаимосвязаны.

  10. #10
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Ардуино для чайников!

    Ошибочка, подтягивающие резистры подключаются вот так:
    pinMode(inprobelPin, INPUT);
    pinMode(inprobelPin, HIGH);

Страница 1 из 5 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •