2 630 сообщений в этой теме

vech    16

в первом сообщении темы в архиве.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Юрец    9

to dmytro: отправил в личные сообщения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Доброго времени суток. Собрал два таких приборчика (часики и бензин-напряжение), планируются для приборки Гольфика2 (пока в процессе, верхний для наглядности вставил бытовой), дисплеи 1202, прошивка вроде подходит от 1110. Видел проскакивал показометр температуры, но не могу понять как процессор опрашивает два датчика, если они запараллелены? Какой предел измерения? В файле прошивки только НЕХ, этого достаточно для корректной работы? Так и не понял кто правит прошивки?..., было бы не плохо ( как бензин и вольтаж) большими цифрами сделать температуру с сигналом для включения реле на вентилятор и возможно звуковой индикацией, меньшими цифрами индицировать давление масла, думаю это более глобальная информация, чем температура в салоне, кто что скажет?

IMAG1453.jpg

IMAG1427.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот, собрал все в кучу, температурный дисплейчик немножко не из той серии. Будет ли продолжение проэкта  с температурой и давлением масла, как бензин и напряжение, т.е. два в одном?

IMAG1464.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Николай Зубий
      Как сделать  устройство, выводящие на индикатор время, прошедшее с момента последней перезагрузки контроллера?
    • Автор: forestdozor
      Здравствуйте!

      Мне нужно измерить длительность импульса. Для этого сначала применял внешнее прерывание, а теперь перешел на режим захвата таймера в Atmega 328.
      Однако сейчас происходит странное: Через определенное таймер просто останавливается. Гугл результатов не дает, ни у кого захват таймера 1 не останавливается.
      Подскажите пожалуйста, что делать?
      Среда разработки CodeVisionAVR v3.12. Сейчас попробовал версию 3.3, толку нет. Не работает. Код максимально упростил, но по прежнему толку ноль.
      Переполнение таймера 0 так же работает отлично, до тех пор, пока что-то не произойдет с прерыванием по захвату. Как только что-то произошло - мк останавливается...
      Может немножко подождать, и увеличить значение счетчика current_timp еще на пару значений... Совсем не знаю что делать.
       
       
      interrupt [TIM1_OVF] void timer1_ovf_isr(void)
      {
      TCNT1H = 0x00;
      TCNT1L = 0x00;
      }
      // Timer1 input capture interrupt service routine
      interrupt [TIM1_CAPT] void timer1_capt_isr(void)
      {
       
             TCNT1H = 0x00;
             TCNT1L = 0x00;           // Это уже уровень танцев с бубном "авось поможет" - не помогает.
         
              current_timp++;          // Все упрощено до максимума. Мне бы он хоть количество периодов для начала...
              
        //  }
      }
      // Прерывание по переполнению первого таймера
      interrupt [TIM0_OVF] void timer0_ovf_isr(void)
      {
      // Обнуление счетного регистра.
      TCNT0=0x00;

          
          counter ++;
          if (counter > 10)
          {
                  lcd_clear();
                  sprintf(buffer,"%d us", current_timp);
                  lcd_gotoxy(0,0);
                  lcd_puts(buffer);
                  counter = 0;
          }
          
          
      }

      // Главный цикл программы
      void main(void)
      {

      #pragma optsize-
      CLKPR=(1<<CLKPCE);
      CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
      #ifdef _OPTIMIZE_SIZE_
      #pragma optsize+
      #endif

      // Port B initialization
      // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
      DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
      // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
      PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
      // Port C initialization
      // Function: Bit6=In Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out
      DDRC=(0<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);
      // State: Bit6=T Bit5=1 Bit4=1 Bit3=1 Bit2=1 Bit1=1 Bit0=1
      PORTC=(0<<PORTC6) | (1<<PORTC5) | (1<<PORTC4) | (1<<PORTC3) | (1<<PORTC2) | (1<<PORTC1) | (1<<PORTC0);
      // Port D initialization
      // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
      DDRD=(1<<DDD7) | (1<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
      // State: Bit7=1 Bit6=1 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
      PORTD=(1<<PORTD7) | (1<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
      // Делители таймера 0 рассчитаны таким образом , что его тактовая частота = 15,625 КГц. Расчет был на применение в схеме семисегментников, но с LCD индикатором будет информативнее.
      TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (0<<WGM00);
      TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (1<<CS00);
      TCNT0=0x00;
      OCR0A=0x00;
      OCR0B=0x00;
       
      // Настройка таймера 1
      TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
      TCCR1B=(1<<ICNC1) | (1<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10);
      TCNT1H=0x00;
      TCNT1L=0x00;
      ICR1H=0x00;
      ICR1L=0x00;
      OCR1AH=0x00;
      OCR1AL=0x00;
      OCR1BH=0x00;
      OCR1BL=0x00;
      // Разрешение прерывания по переполнению таймера 0
      TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (1<<TOIE0);
      // Timer/Counter 1 Interrupt(s) initialization
      TIMSK1=(1<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (1<<TOIE1);
    • Гость Олег
      Автор: Гость Олег
      Здравствуйте!
      Помогите, пожалуйста, с подключением датчика детонации, установленного на двигателе авто.
      Суть проблемы:
      На двигателе установлено два датчика детонации. Один из них вышел из строя. Заказал новый, жду. В каждом датчике установлен пьезо-элемент, который генерирует напряжение в соответствии с вибрацией двигателя. Минус у датчиков общий, через массу. Плюс от каждого отдельно заходит к блок управления двигателем. Блок управления двигателем определяет детонацию по напряжению, генерируемому датчиком(так указано в мануале). Сопротивление датчика при проверке на работоспособность - 90-110 кОм(по мануалу), генерируемое напряжение - 400 мВ(по мануалу).
      Вопрос:
      Можно ли взять плюс от одного рабочего датчика и завести его на два входа блока управления двигателем? То есть, использовать один датчик вместо двух. 
      Спасибо!
    • Автор: voltex
      Всем привет! Подскажите, пожалуйста, как правильно считать данные с внешней eeprom по шине spi, в данном случае 25LC256.
      Написал код ссылаясь на даташит. Собрал схему в протеусе, подключил spi отладчик и вот что получил в итоге. Так же не могу проверить получается записать данные в память или нет. Весь код прикрепил.
       

      main.c
  • Сообщения

    • Вооот, в Тюмени меня менты оштрафовали за курение в общественных местах. Ни знаков, ничего. Ни одного человека на улице. А один полицай меня на камеру заснял через окно. Обоссака)) Возле аэропорта
    • Извиняюсь, почему ''недогенератор'' ? Вторичная обмотка выдает управляющий сигнал, имеющий частоту, совпадающей с собственной частотой колебаний (контур из индуктивности и распределенной емкости катушки) на базу транзистора, который на основе маленького сигнала создает его больший ''образ'' из питания 12-вольтовой батарейки и подает ее на первичку. Короче говоря, вторичная обмотка управляет ''сама собой''. Это разве не улучшает попадание в резонанс вторички ? Да и вы сказали что мы не можем подключить верхний конец вторички подсоединить к эмиттеру из-за выского напряжения да и походу не нужно. Даже осциллятор Тесла не был таким совершенным, где приходилось точно подбирать элементы с параметрами, чтобы создать в первичке колебания совпадающие с собственной частотой колебания вторички.  
    • Не уверен. что и заземление поможет 
    • Снимите видео. Сюда выкладывайте. Что-то всё очень странно. Не может такого быть. Монитор не может "мигать". Хотя ещё нужно разбираться, что за монитор у вас
    • Добро пожаловать в Сити 17. Тюмень 18  
    • Кстати!  Вспомнил. У меня же валяется абсолютно новый блок питания, вот такой так с ним , как мне описали, изображение постоянно глючило и двоилось, а иногда и вообще пропадало. Вскрытие показало полное отсутствие сетевого фильтра, абсолютно нищенскую сборку и отсутствие стабилизации выходных напряжений. Так что, может это системник отрубает сигнал из-за плохого БП, а не монитор
    • Конденсатор припаивается к выводам микросхемы, в идеале напрямую). А почему провода до сих пор не экранированные? Я же давал рекомендации, как правильно нужно припаивать. Там, по-моему, я описал как и куда, чем паять. Всё, что иначе - неправильно, или сильно ухудшит характеристики. Например, корпус резистора должен быть соединён с массой.  Переменный резистор, чем больше, тем хуже ВЧ могут быть. Я ставлю на 10кОм, можно и 50кОм. Ни разу в жизни не видел таких ни в одном звуковом устройстве, ни разу таких не видел, ни разу не использовал. На рынке один раз хотел купить - цена в 10 раз выше. Решил, что и линейная зависимость меня устроит