Showing posts with label Arduino. Show all posts
Showing posts with label Arduino. Show all posts

Arduino: 1023 or 1024

We have a thermistor connected to an Arduino through a voltage divider circuit. The voltage divider consists of the thermistor and a second fixed resistor.

Custom Arduino Driver for Battery Gas Gauging Device BQ28Z610

Arduino BQ28Z610 Driver

This is a driver for Arduino that provides functions to interface with the BQ28Z610 battery gas gauge device over I2C protocol. With this driver, you can operate the BQ28Z610 device via the serial port from your computer using Arduino.

Functions were implemented based on the documentation:

Not all functions described in the Technical Reference Manual were implemented, but most of them.

The driver also includes some additional service functions for more usability.

Arduino Stub for Battery Pack for JBL XTREAME 2

This program is designed to be written on Arduino or ATtiny85 and acts as a stub to respond to the speaker's requests via the I2C protocol, enabling the speaker to be used while connected to mains power without using a battery.

It can be used when you don't want to or cannot use the battery pack.

Calibrating a Thermistor for Arduino Projects

We will need:

  • Thermistor itself, NTC, 10kOhm.
  • Resistor, 10kOhm
  • Arduino
  • A reference thermometer, the readings from which are surely correct.

Restoring Vintage Christmas Lights

At my parents' place, there was a Christmas lights string that I admired since childhood, even though I couldn't recall ever seeing it whole and functional. I always wanted to see its glow and charm when it was lit up. 🌟

The light was in dreadful condition: not all lamps were present, wires were cut, and only a few lights were working. I decided to "refactor and rebuild" it completely but to save as many original parts as possible.

So, my exciting journey started with the task: replace glow-lamps with LEDs, and, consequently, replace the supply voltage from 220v to 5v.

9-разрядный дисплей для Ардуино на регистрах 74HC595

9-разрядный дисплей

 

Распиновка 74HC595

Функционально 74HC595 состоит из: собственно, сдвигового регистра SH (от shift) и регистра хранения ST (от storage).
 
Данные в SH регистр вносятся последовательно - бит за битом, по фронту сигнала SH_CP. В ST регистр данные попадают по фронту сигнала ST_CP.

На выводы Q0-Q7 подаются данные из ST регистра, вне зависимости от того, что находится в данный момент в SH регистре. Сигнал OE служит выключателем подачи сигнала из ST регистра на выводы Q0-Q7: низкий уровень сигнала - данные выводятся, высокий - выводы переходят в Z-состояние (грубо говоря, электрически изолированы).

На вывод Q7S (или Q7') всегда подается сигнал из 7-го бита SH регистра. Он служит для передачи данных следующему регистру, но его можно использовать и с целью вывода дополнительного бита. Для этого потребуется:
  •     ввести первые 8 битов в SH регистр по тактовому сигналу SH_CP
  •     переместить данные в ST регистр по фронту тактового сигнала ST_CP
  •     ввести новые 8 бит в SH регистр, где 7й бит будет соответствовать 9му.
Изучить более детально особенности сдвигового регистра 74HC595 можно в даташите: https://github.com/asilichenko/ShiftRegDisplay/blob/main/docs/pdf/74HC_HCT595.pdf

Дисплей необходимо собрать по следующей схеме:
 

Файл для симуляции в Proteus: https://github.com/asilichenko/ShiftRegDisplay/blob/main/simulation/proteus/NineDigitDisplay.pdsprj

 
Вход DS регистра U1 подключен непосредственно к Ардуино. Он принимает данные и передает следующему регистру U2. Таким образом, вход DS второго регистра U2 подключен к выводу Q7S первого регистра.

Первый регистр U1 служит для вывода позиции текущего символа, а второй - собственно, для вывода символа.

Для обеспечения возможности управления позиционными выводами индикатора, входы регистров ST_CP (тактирующий ST) и OE (разрешение вывода) объединены.

Физически, соединение регистров и Ардуино выглядит следующим образом



Библиотека для работы с 9-разрядным дисплеем на сдвиговых регистрах:

https://github.com/asilichenko/ShiftRegDisplay

Библиотека позволяет:

  • выводить на дисплей до 9 символов с выравниванием по любому краю
  • выводить одиночный символ в определенной позиции
  • выводить данные на дисплей в течение указанной длительности в мс
  • программно переопределять соответствие выводов и сегментов индикатора
  • выводит предопределенные символы: 16-ричные цифры, знак минуса, маленькая "о"
  • определять собственный шрифт, который не зависит от конкретного соответствия выводов сегментам
  • использовать индикаторы как с общим катодом, так и с общим анодом (в сборке, конечно, индикаторы должны быть однотипные)

 
При необходимости, можно расширить дисплей еще на 1 разряд - за счет вывода Q7S регистра символа:

  shiftOut(DAT_PIN, CLK_PIN, BIT_ORDER, (pos < 10) ? bit(7) : 0x00);
  shiftOut(DAT_PIN, CLK_PIN, BIT_ORDER, (8 == pos) ? ~bit(7): 0xFF);



Як прошити LGT8F328P-SSOP20 через Arduino

Прошити LGT8F328P-SSOP20 як звичайну Arduino Pro Mini через інтерфейс SPI (MOSI, MISO, SCK, SS) не можна, але можна прошити по інтерфейсу Serial Wire Debug (SWD: SWD, SWC).

Desperate Housewives Susan's Art s05 e16

Desperate Housewives Susan's Art s05 e16