Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 31 по 40 из 57
  1. #31
    Ломастер
    Регистрация
    24.02.2008
    Сообщений
    287
    Вес репутации
    265

    По умолчанию Re: Радар-детектор и Arduino

    Цитата Сообщение от outruller Посмотреть сообщение
    так какой донор-РД для Arduino предпочтительней?
    SAVER G250 c доработкой антенной части. Но возможности работы по "стрелке" не будет (кроме случайных срабатываний и сработки в зоне 100м -200м от комплекса).

    Хотя нет, лучше эту помойку даже не покупать. Через пару дней будет продолжение
    Последний раз редактировалось dragon; 20.10.2010 в 18:58.

  2. #32
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    443

    По умолчанию Re: Радар-детектор и Arduino

    ждем с интересом!

  3. #33
    Ломастер
    Регистрация
    24.02.2008
    Сообщений
    287
    Вес репутации
    265

    По умолчанию Re: Радар-детектор и Arduino

    Продолжаем извращения. Для продолжения экспериментов был найден радар-детектор низшей ценовой категории Sho-me-1720
    Внутри этой балалайки находится цельнолитой узел. Откручиваем его и видим мелкий 8 ножечный разъем
    2 ноги питалово, 1 выход спектра 2 (пока не ясно что) , нога отключения гетеродина и .... нога управления частотой гетеродина (подаётся пилообразное напряжение)
    В качестве просто радара - можно подключить к 2 ногам ардуино - пилообразное делаем из D2 , прием на аналоговой ноге , пилу делаем коротким импульсом заряжая емкость, который потом медленно разряжается. ....
    Но это не интересно.
    В течении недели сниму характеристики с гетеродина и внутреннего усилителя, на сколько быстро они могут реагировать, если фиксировать частоту гетеродина и пытаться засечь короткие импульсы на определенной частоте.

  4. #34
    Продвинутый Аватар для Pinin
    Регистрация
    04.01.2009
    Возраст
    60
    Сообщений
    213
    Вес репутации
    238

    По умолчанию Re: Радар-детектор и Arduino

    Уж не буду новую тему затевать, благо это и есть продолжение старой...

    Потребовалось несколько расширить функционал проги. До сего момента все управляющие команды на Арду валились через СОМ (виртуальный, понятно, ну да не суть...)

    Теперь надо помимо прочего завести еще и физическую кнопку.
    Задействовал два цифровых канала - D3 на вход с кнопки, D5 - выход управления. Проинициализировал, как полагается:

    PHP код:
    const int buttonPin3 3;      // Кнопка переключение на камеру
    ***
    const 
    int ledPinCam 5;       // Выход переключения на камеру

    digitalWrite(ledPinCamLOW); 
    В самом начале рабочего цикла прошивки вставил конструкцию:

    PHP код:
    buttonState digitalRead(buttonPin3);

                
    // Если кнопка нажата, формируется 2 импульса переключения с задержкой 1 сек:
      
    if (buttonState == HIGH) {     
        
    // turn LED on: 
        
    delay(1000);
           
    digitalWrite(ledPinCamHIGH); // Первый импульс  
       
    delay(1000); 
           
    digitalWrite(ledPinCamLOW); 
       
    delay(1000);
           
    digitalWrite(ledPinCamHIGH); // Второй импульс  
       
    delay(1000); 
           
    digitalWrite(ledPinCamLOW); 
      } 
    ,
    но что-то не работает она...

    Думал, может в режиме получения команд по СОМ в принципе невозможно еще и физические входы считывать, но даже при прописывании digitalWrite(ledPinCam, HIGH); в самом начале на выходе D5 стабильно висит логический ноль...

    В чем могут быть грабли?

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

    По умолчанию Re: Радар-детектор и Arduino

    Вопрос не понятен, что за инициализация?

  6. #36
    Пользователь
    Регистрация
    29.10.2009
    Сообщений
    89
    Вес репутации
    244

    По умолчанию Re: Радар-детектор и Arduino

    Цитата Сообщение от Pinin Посмотреть сообщение
    Проинициализировал, как полагается:

    const int buttonPin3 = 3; // Кнопка переключение на камеру
    ***
    const int ledPinCam = 5; // Выход переключения на камеру
    digitalWrite(ledPinCam, LOW);

    Цитата Сообщение от Pinin Посмотреть сообщение
    В самом начале рабочего цикла прошивки вставил конструкцию:
    ...

    но что-то не работает она...



    В чем могут быть грабли?
    зачем digitalWrite(ledPinCam, LOW); в глобальной области?

    весь код выложи

  7. #37
    Продвинутый Аватар для Pinin
    Регистрация
    04.01.2009
    Возраст
    60
    Сообщений
    213
    Вес репутации
    238

    По умолчанию Re: Радар-детектор и Arduino

    Вопрос не понятен, что за инициализация?
    Ну, имелось в виду, что каналы заданы как цифровые входа/выхода (D3,D5) и задано начальное значение выхода D5=0...

    зачем digitalWrite(ledPinCam, LOW); в глобальной области?
    Исходное состояние выхода потому что... Смущает лишь то, что задании его HIGH (просто, чтобы проверить как оно работает) - один черт там ноль оказывается...

    Код выложу уже утром (на работе он остался...)

    P.S. Ну вот, собственно, и он:

    PHP код:
    /*
      Семь кнопок: 
      Вкл/Выкл питания нагрузки
      Режим 1 (короткое нажатие)
      Режим 1 (длинное нажатие)
      Режим 2 (короткое нажатие)
      Режим 2 (длинное нажатие)
      Громкость +
      Громкость -
     
     Питание на нагрузку подается либо при начальной инициализации системы, 
     либо программно (для вкл/выкл нагрузки без снятия питания со всей системы)
     По включению питания формируется импульс сброса самотестирования нагрузки. 
     Громкость выставляется в предустановленный уровень.
     
     The circuit:
     * Оптрон Режима 1  attached from pin 9 to ground 
     * Оптрон Режима 2  attached from pin 11 to ground
     * Оптрон Вкл/Выкл  attached from pin 7 to ground
     * Оптрон "Громкость"  attached from pin 10 to ground
     * pin 8 attached to pin 11   
     * pin 7 attached to pin 12
      
      ******************
     modified 22.01.2010
      */

    // constants won't change. They're used here to 
    // set pin numbers:
    const int buttonPin1 12;     // Вход с питания
    const int buttonPin2 8;      // Вход с формирователя сброса
    const int buttonPin7 6;      // Включение/выключение питания
    const int buttonPin3 3;      // Кнопка переключения на камеру- ДОБАВЛЕНО
    const int ledPin5 =  9;        // Управление 1 режимом
    const int ledPin4 =  11;       // Управление 2 режимом/Ипульс сброса теста
    const int ledPin2 =  7;        // Включение нагрузки
    const int redPin   10;       // Управление громкостью
    const int ledPinCam 5;       // Переключение на камеру - ДОБАВЛЕНО
    int val;


    // variables will change:
    int buttonState 0;         // variable for reading the pushbutton status
    int redLEDValue   50;      // Предустановленный уровень громкости

    void setup() {
      
    Serial.begin(115200);              //установка порта 
      // initialize the LED pin as an output:
      
    pinMode(ledPin2OUTPUT);
      
    pinMode(ledPinCamOUTPUT); //- ДОБАВЛЕНО
      
    pinMode(ledPin4OUTPUT); 
      
    pinMode(ledPin5OUTPUT);
      
    pinMode(redPinOUTPUT);   // sets the pins as output
        // initialize the pushbutton pin as an input:
      
    pinMode(buttonPin1INPUT);
      
    pinMode(buttonPin2INPUT);
      
    pinMode(buttonPin7INPUT);
      
    pinMode(buttonPin3INPUT);  //- ДОБАВЛЕНО
      
    analogWrite(redPinredLEDValue);

        
    // turn LED on:    
        
    digitalWrite(ledPin2HIGH); // Первое включение системы
        
    digitalWrite(ledPinCamLOW);   //- ДОБАВЛЕНО
        
        
       
      // read the state of the pushbutton value:
      
    buttonState digitalRead(buttonPin1);

                
    // Если питание подано, формируется импульс сброса с задержкой 2 сек:
      
    if (buttonState == HIGH) {     
        
    // turn LED on: 
       
    delay(2000);                  // пауза на сброс теста for a 2 second (подбирается вручную)
        
    digitalWrite(ledPin5HIGH); // Импульс сброса 1 сек 
       
    delay(1000);  
      } 
      else {
      }
    }

    void loop() {
                
    // Если нагрузка уже инициалирована, переход в рабочую программу
      
    while (digitalRead(buttonPin1) == HIGH) {
         
    work(); 
       }
                 
    // Если нагрузка не инициалирована, переход в инициализацию
      
    while (digitalRead(buttonPin1) == LOW) {
         
    initial(); 
       }
    }
    void initial(){   
      
    delay(1000);                  // пауза на включение
       // Выбор режима Вкл/Выкл:
      
    if (Serial.available())          //если есть принятый символ, 
      
    {
        
    val Serial.read();            //  то читаем его и сохраняем в val  
       
      
    buttonState digitalRead(buttonPin7);
      
      if (
    val == 'd') {     
        
    // turn LED on:    
        
    digitalWrite(ledPin2HIGH); // Включение питания
         

      else {
          }
      
    // read the state of the pushbutton value:
      
    buttonState digitalRead(buttonPin1);

              
    // Если питание подано, формируется импульс сброса с задержкой 2 сек:
      
    if (buttonState == HIGH) {     
        
    // turn LED on: 
       
    delay(2000);                  // пауза на сброс теста for a 2 second (подбирается вручную)
        
    digitalWrite(ledPin5HIGH); // Импульс сброса 1 сек 
       
    delay(1000);  
      } 
      else {
      }

             
    // Если импульс сброса сформирован, переход к рабочему циклу
       
    while (digitalRead(buttonPin2) == HIGH) {
         
    work(); 
       }
    }
    }

    void work(){
      
    //- ДОБАВЛЕНЫЙ БЛОК
      
    buttonState digitalRead(buttonPin3);

                
    // Если кнопка нажата, формируется 2 импульса переключения с задержкой 1 сек:
      
    if (buttonState == HIGH) {     
        
    // turn LED on: 
        
    delay(1000);
           
    digitalWrite(ledPinCamHIGH); // Первый импульс  
       
    delay(1000); 
           
    digitalWrite(ledPinCamLOW); 
       
    delay(1000);
           
    digitalWrite(ledPinCamHIGH); // Второй импульс  
       
    delay(1000); 
           
    digitalWrite(ledPinCamLOW); 
      } 
      
      
    // КОНЕЦ ДОБАВЛЕННОГО БЛОКА

      
    digitalWrite(ledPin5LOW); // Снятие импульса сброса
               
               // Выбор режима 1 короткое/длинное нажатие:
      
      
    if (Serial.available())          //если есть принятый символ, 
      
    {
        
    val Serial.read();            //  то читаем его и сохраняем в val 
      
      
      
    if (val == '1') {     
        
    // turn LED on:    
        
    digitalWrite(ledPin4HIGH); 
       
    delay(1000);                  // Короткое нажатие (Реж.1)
      
    digitalWrite(ledPin4LOW);    // set the LED off 
      

      else {
        
    // turn LED off:
        
    digitalWrite(ledPin4LOW); 
      }
      
      if (
    val == '3') {     
        
    // turn LED on:    
        
    digitalWrite(ledPin4HIGH); 
       
    delay(5000);                  // Длинное нажатие (Реж.1)
      
    digitalWrite(ledPin4LOW);    // set the LED off 
      

      else {
        
    // turn LED off:
        
    digitalWrite(ledPin4LOW); 
      }
                
    // Выбор режима 2 короткое/длинное нажатие:
      
      
    if (val == '5') {     
        
    // turn LED on:    
        
    digitalWrite(ledPin5HIGH); 
       
    delay(1000);                  // Короткое нажатие (Реж.2)
      
    digitalWrite(ledPin5LOW);    // set the LED off 
      

      else {
        
    // turn LED off:
        
    digitalWrite(ledPin5LOW); 
    }

      if (
    val == '7') {     
        
    // turn LED on:    
        
    digitalWrite(ledPin5HIGH); 
       
    delay(5000);                  // Длинное нажатие (Реж.2)
      
    digitalWrite(ledPin4LOW);    // set the LED off 
      

      else {
        
    // turn LED off:
        
    digitalWrite(ledPin5LOW); 
      }
      
      if (
    val == 'b' && redLEDValue 1){ // Уменьшение громкости

    redLEDValue -= 1// Red down
    }

      if (
    val == '9' && redLEDValue 255 ) {  // Увеличение громкости

    redLEDValue += 1// Red up
    }

    // analogWrite() expects 2 parameters, the object/pin and a value between 0 (off) and 255 (full on)
    analogWrite(redPin,   redLEDValue);   // Write current values to LED pins
    delay(50); 
      
      
              
    // Включение/выключение питания:
      
      
    if (val == 'd') {     
        
    // turn LED on:    
        
    digitalWrite(ledPin2LOW); 
       
    delay(1000);                  // 
      
    digitalWrite(ledPin2LOW);    // set the LED off 
      

      else {
      }
         
      }

    Последний раз редактировалось Pinin; 20.07.2011 в 08:47.

  8. #38
    Местный Аватар для zhserg
    Регистрация
    12.11.2010
    Сообщений
    135
    Вес репутации
    200

    По умолчанию Re: Радар-детектор и Arduino

    А назначение режима pinMode(ledPinCam, OUTPUT) у тебя есть? Я что-то не увидел...
    Ну и для входа соответственно тоже.

  9. #39
    Продвинутый Аватар для Pinin
    Регистрация
    04.01.2009
    Возраст
    60
    Сообщений
    213
    Вес репутации
    238

    По умолчанию Re: Радар-детектор и Arduino

    Есть, есть... Там в комментах везде отмечено, что вставлялось в старую прошивку.

  10. #40
    Местный Аватар для zhserg
    Регистрация
    12.11.2010
    Сообщений
    135
    Вес репутации
    200

    По умолчанию Re: Радар-детектор и Arduino

    Уже увидел Может порт дохлый?

Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

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

Метки этой темы

Ваши права

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