Skip to main content

Posts

Showing posts with the label HD44780

Universal HD44780 LCD interface

YALI ( Yet Another LCD Interface ) is an open-source project to provide a universal interface to drive the popular Hitachi HD44780 LCD controller. This module supports 3.3V and 5V MCUs and hardware development platforms, including Arduino, STM32, PIC, and ESP8266. YALI hardware module. The hardware module of this project consists of a 74HCT08 CMOS AND gate and a 74HC595 8-bit serial-in, parallel-out shift register. This module uses the MP1540 step-up converter to power the LCD unit connected to the system. The module has the jumper to select 3.3V or 5V DC power input.  Bottom side of the YALI hardware module. The YALI library is developed using C and is designed to be easily integrated with any C/C++ embedded toolchain. At the initial design stages, this library was successfully tested with all Arduino development boards, NodeMCU , STM32 Blue Pill , etc. The target system must have three digital output lines with 5V or 3.3V logic levels to interface with the YALI module. As m...

5.1 channel preamplifier

This project introduces a digitally controlled 5.1 channel audio preamplifier system. This amplifier is specifically designed to increase the gain of the multi-channel PC sound cards. The main reason for building this amplifier is the limited gain received from the ASUS Xonar AE sound card with the Creative Inspire T6300 , 5.1 surround speaker system. Before switching to this soundcard, we had a Creative Sound Blaster Z card which provided good audio output with the above-mention speaker system. The key motivation of building this amplifier is to solve these gaining problems. The assembled 5.1 preamplifier PCB. This preamplifier consists of six TL074 / TL072 preamplifier stages and PT2258 electronic volume control. The input stage of this preamplifier consists of six TL074 / TL072 buffer stages. The PIC16F886 microcontroller manages the PT2258 electronic volume control IC. All the volume levels and menu options are displayed on HD44780 , 16x2 character LCD screen . All the ...

Arduino telephone caller ID unit

CLI, also known as Caller ID and calling number delivery ( CND ), is a service offered by the telephone service provider to customers to obtain the calling party number and date/time of the call. The service activation and information format of CLI are different from telephone network operator to operator. CLI display unit - minimum test setup In this project, we will create a small Caller ID decoder using Arduino UNO and a custom-made HT9032D module. The core component of the project is the HT9032D, which can decode incoming call ID data over a telephone connection. This IC supports Bell 202 FSK and ITU-T version 2.3 CLI protocol specifications. The HT9032D module we created here base on the application example given in the IC datasheet . In addition to decoding CLI data, this module also can detect ring signal rises over the phone line. Assembled HT9032D module The Arduino UNO is used to process the decoded CLI data stream and manipulate the LCD. In an idle state, the decoder a...

Experimental Zener Diode Tester

This post describes our initial attempt to design an automatic Zener diode tester. This tester is designed using well-known ICs such as MC34063 and PIC16F88 . Output for 5.1V Zener diode. This unit is capable of identifying Zener diodes up to 27.5V. Apart from that, it can be used to recognize leads of the diodes / Zeners and detect damaged diodes. For this project, we use components that are already in our inventory. Most of these components can be replaced with more accurate and modern substitutes. This unit provides approximately 5% to 15% accurate readings. Based on our observations, the accuracy of this unit can increase by using resistors with 1% tolerance, stable booster circuit, accurate sampling method(s), and with a more optimized PCB layout. Prototype version of Zener diode tester The schematic, PCB design and firmware of this project are available to download at github.com .

FM stereo radio receiver with RDS

This tuner circuit is a quick prototype which I build to test the RDA5807M FM radio tuner IC. RDA5807M is a single-chip tuner IC with RDS and MPX decoder, and it equipped with I 2 C interface for control. The main reason to build this prototype is to understand the behavior of this chip. The prototype version of the RDA5807M receiver. At the time of this design, the website of the RDA microelectronics is not accessible from my location. Because of this reason, I download different versions of RDA5807M datasheets from the internet. While going-through those datasheets, I observed that it comes with limited information. Finally, I decided to build this receiver to verify some of those parameters and to review the RDS functionality of the chip. I build this receiver around ATmega16A MCU. I choose this MCU because I got a few of ATmega16A MCUs in my inventory and also due to the higher number of  I/O pin count. RDA5807M module. In this design, the volume is contro...

Digitally controlled 2.1 channel analog audio power amplifier

This article introduces high quality digitally controlled 2.1 channel analog audio power amplifier system. This project is mainly based on TDA7377 AF power amplifier and PIC18F452 8bit microcontroller. Basic features of this receiver are 2 × 6W + 20W audio output power, ±14dB bass and treble controls, fully configurable +35dB bass booster for sub-woofer and satellite speakers and loudness switch. This system use commonly available electronic components and all the integrated circuits are in DIL packages. This amplifier consists with few UI elements such as 2 push buttons and 1 rotary encoder. All the menu navigation can perform through rotary encoder. Prototype version of 2.1 channel audio power amplifier project Entire amplifier can build on 147mm × 80mm PCB and all the PCB design files are available to download at google drive . This is an open hardware project and all the firmware source codes, design files are covered with Mozilla Public License version 2.0 . All the ab...

Virtual MCU Base Programmable Timer

In this article we implement virtual (computer simulation base) microcontroller driven programmable timer using Proteus VSM. This proposed system is design using Microchip PIC16F877A – 8bit microcontroller and its system software is developed using MikroC PRO 3.2 for PIC. Most of the components in this proposed design are based on Proteus VSM - simulation models and we assign standard component names to them to assist in actual prototyping. In this simulation we use PIC16F877A as main system controller and 4 row monochrome LCD display unit with HD44780 compliant controller (in 4bit mode). This proposed simulation model is design to work with +5V supply voltage, but it can also operate using battery power (3 × 1.5V). When implementing this system for the real-life use, it is highly recommended to integrate battery backup facility to this system. It helps to drive this system continuously with minimum amount of disturbances. According to the supplied source code, end user may be a...

Automated Home Security System

Automated Home Security system is PIC16F877 based security system with following core features, Support automatic phone dialing using DTMF tones Support inputs from three optical sensors Control external device(s) Built-in alarm with external audio output Allow total customization to the end-users (such as program phone numbers, setup device control sequence, etc) without changing the source code. Password protected system setup In this design we use PIC16F877 8bit microcontroller as main system controller, NE556 dual timer as an alarm system and 7805 as power regulator. To miniaturize the final product we use some amount of surface mounted parts with this design. Application program(s) of PIC microcontroller is developed using C programming language and release under the terms and conditions of GNU General Public License. In this design we use some special electronic components/modules which include LCD display module, 4x4 keyboard matrix, telephone isolation transforme...