Jump to content

Recommended Posts

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

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

IMAG1453.jpg

IMAG1427.jpg

Share this post


Link to post
Share on other sites

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

IMAG1464.jpg

Share this post


Link to post
Share on other sites
                     

Литиевые батарейки Fanso в беспроводных датчиках пожарно-охранной сигнализации

Выбор подходящего элемента питания, способного обеспечивать требуемый уровень напряжения и выдавать необходимый ток на протяжении всего периода эксплуатации беспроводной пожарно-охранной системы является одной из первостепенных задач. Наиболее подходящим для этих целей элементом являются литий-тионилхлоридные элементы питания, а одним из наиболее конкурентоспособных производителей – компания Fanso, предлагающая своим клиентам продукты как универсальные, так и разработанные специально для решения конкретных задач.

Подробнее...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Сашура
      Всех приветствую.
      Собственно наболевшая тема:
       
      Приветствую,
      Задача восстановить смарт ключ после серии не удачных экспериментов по замене севших батарей. На данный момент открываю и завожу обходным методом.
      Авто Toyota Auris Hybreed 2015.
      ------------------
      1. Для начала хорошо бы разобраться в алгоритме взаимодействия схемы ключа с бортовым компьютером. К сожалению я нигде не нашел вменяемое описание.
      Размышляю вслух:
      1.1. опознавание ключа в зоне его чувствительности происходит периодическим передачей n-bit в эфир 433.92MHz (Европа, Азия?)
      1.2. в случае отклика приемника ключа на n-bit код последний активизирует ответ в виде обратного ответа тем же кодовым значением, происходит активизация логики на открытие дверей и на пуск кнопки запуска двигателя.
      1.3. т.к. в режиме аварийного запуска (смарт модуль на кнопку) активизация запуска (через иммобилаизер) происходит, следовательно, код запуска на смарт блоке не затерт, чувствительность приемника предельно малая, от того брелок нужно прикладывать к кнопке, далее на нем активизируется передатчик и транслирует код доступа. Как-то так.
      Есть открытый вопрос — по процедуре замены батареи. В мануалах я где-то встречал лимит по времени не более 10 с. Но я не думаю что Eeprom слетает по причине его длительного обесточивания. Сегодня они все энергонезависимые.
      1.4. соответственно дверь не можно открывать по той же причине.
      Вывод — приемник смарт ключа не реагирует на запрос, передатчик не заводится.
      Батарея 3,3V.
      Led  на ключе в зоне действия мертвый.
      А может подобрать китайский Can bus c соответствующим софтом под модель авто?
      Любой опыт и ссылки приветствуются. 
      То немногое, что народ выкладывает на yOuTobe особой ясности не дает.


    • By Вячеслав_НС
      помогите разобраться с кодом .(послать значение по шине TWI на ЦАП PCF8591) не работает в протеусе ...
      #define F_CPU 8000000UL 
      #include <stdlib.h>
      #include <avr/io.h>
      #include <util/delay.h>
      //*** ИНИЦИАЛИЗАЦИЯ ШИНЫ TWI ***/
      void TWI_Init(void)
      {
          // Установка тактовой частоты F_scl  = 100 кГц
          TWBR =32;
          TWSR &= (~((1<<TWPS1)|(1<<TWPS0)));
          TWCR |= (1 << TWEN);            // Разрешение работы TWI-модуля
      }

      /*** ЗАПУСК TWI ***/
      void TWI_Start(void)
      {
          TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
          while(!(TWCR & (1<<TWINT)));
          TWDR = 1001000; // передача адреса модуля PCF8591 в шину TWI
          TWCR=(1<<TWINT)|(1<<TWEN);
          while(!(TWCR & (1<<TWINT)));
      }
      /*** ОСТАНОВКА TWI ***/
      void TWI_Stop(void)
      {
          TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
          while(TWCR & (1<<TWSTO));        // Ожидание завершения передачи условия СТОП
      }
      /***ПЕРЕДАЧА ДАННЫХ В TWI***/
      void TWI_WriteByte(uint8_t data)
      {
          TWDR = data;                    // Загрузка данных в TWDR
          TWCR=(1<<TWINT)|(1<<TWEN);
          while(!(TWCR & (1 << TWINT)));    // Ожидание завершения передачи данных
      }
      /*** ПЕРЕДАТЬ ЗНАЧЕНИЕ В PCF8591 ***/
      void PCF8591_get(void)
      {
          TWI_Start();                // Запуск TWI
          TWI_WriteByte(0x40);        //включаем цап
          TWI_WriteByte(100);            // запись в ЦАП значения 100
          TWI_Stop();                    // Остановить TWI
      }            
          int main(void)
      {
          TWI_Init();    
          while (1)
      {
              PCF8591_get;
             _delay_ms(50);
        }
      }
    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<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; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • By Adinetsrock
      Помогите опознать транзистор. Выпаял из бортового компьютера Surf.  Маркировка E144A    K38X

  • Сообщения

    • научился делать снимки триггером. еще бы научиться сохранять снимки а не телефоном фоткать кз кнопкой, выходное 5в, ток 2А макс.
    • Такие да не такие.   Фильтр спаять мало.Его нужно настроить.Есть прибор называется АЧХ метр Х1-48 или "СВИСТОК"-худший вариант. Вод делал когда то,так в фильтре конденсаторы на 2квольта взрывались пока не поставил трубчатые.Мощьность была ват40-50 в этом пределе.
    • На ремонт как-то попал "Technics SA-GX 130". Так там было всё продумано. На радиаторе с микросхемой стоял транзистор в качестве термо-датчика. При положении регулятора громкости до 12 часов вентилятор не включался, так как нагрев радиатора был ничтожный. А вот, когда за 2-3 часа, радиатор становился ощутимо тёплым, вентилятор стартовал и эффективно охлаждал радиатор с микросхемой. Никакой дискомфорт не ощущался. Видно обороты были подобраны грамотно. Да и степень износа вентилятора не велика. В компьютерах, и в некоторых БП включение охлаждающего вентилятора организовано от термо-датчика на радиаторе. Возросла нагрузка, разогрев радиатора увеличился и включился обдув. В компьютерах этот режим можно установить в BIOS.Такое управление вентилятором обдува, наверное, будет самое грамотное, в зависимости от температуры радиатора. При ничтожных нагрузках вентилятор вообще включаться не будет.  
    • Зачем? Да и переделывать все равно уже не буду, итак дней 10 провозился.
    • Хочу создать pod систему на базе lipo аккумулятора (3.7 вольт, 720 mah). Койл буду делать из 0.2 нихрома. Аккумулятор даже 0.5 см проволоки не тянет. Просьба помочь со схемой усилителя или другого способа решения проблемы. 
    • Это то же самое - тот же ЦАП.  Надо,чтобы с ЦАП была максимально возможная амплитуда.
    • Это для КС162 в ОС ОУ? Пробовать надо, должны быть хороши импульсные вч диоды, типа КД514А, 0,9 пФ, 0,1 нс.  Особых блох нет смысла ловить, для повседневного использования, эта схема и так сильно лучше остальных, а если КС162 ОУ_V подключить после LED, то переходная характеристика становится совсем опупительной. Интересна еще осциллограмма пульсаций твоего ЛБП в режиме ограничения тока.
×
×
  • Create New...