Menu

Adskeeper - header widge

728x90

Search This Blog

468x60

Navbar

AdsKeeper - IAB Display Standard Ad Unit

Showing posts with label Module PCB. Show all posts
Showing posts with label Module PCB. Show all posts

Wednesday, March 3, 2021

Making a 74HC595 LED driver for Arduino PIC and AVR

LEDs Driver Making

As referred in the previous post, I made a single seven segments board based on SN74HC595N.

Here, I make a similar one, but the 74HC595 at this time drive 8 LEDs. It's just a simple example of using 74HC595 with Arduino. 

Making a 74HC595 LED driver for Arduino PIC and AVR
A sample of running program
 

I use Proteus 8 to design the schematic and PCB.

Making a 74HC595 LED driver for Arduino PIC and AVR
Schematic Diagram
 

I export the PCB pattern including copper track and legend side.

Making a 74HC595 LED driver for Arduino PIC and AVR
Copper Side
 

Making a 74HC595 LED driver for Arduino PIC and AVR
Top Silk
 

Making a 74HC595 LED driver for Arduino PIC and AVR
A 3D View
 

Making a 74HC595 LED driver for Arduino PIC and AVR
A completed Soldering Board

Making a 74HC595 LED driver for Arduino PIC and AVR
 

The Proteus design file could be downloaded here. 

Arduino Programming And Interfacing

I use the same shiftOut() function to transmit the data the registers. With and additional random() function to create a random numbers up to 255, and displaying it on LEDs.

The syntax of random() function is:

random(max)
random(min, max)

Where,

  • min - is the lower bound value
  • max - is the upper bound value
This function return a created random number as set. 
Arduino source code lists below.
 
Making a 74HC595 LED driver for Arduino PIC and AVR
Arduino sketch
 

Friday, January 1, 2021

A DIY TWI LCD Using PCF8574AP For Arduino

A character LCD with a 44780 LCD controller generally controlled by an MCU parallel port. Even the data transfer in-used is 4-bit mode, but it still require up to six MCU pins. 

A DIY I2C character LCD built with PCF8574AP For PIC AVR and Arduino
A character LCD with PCF8574AP

PCF8574AP is an 8-bit general purpose digital I/O expanding. We can read and write digital data between this device and a master MCU, or even controlling a parallel LCD module. However using an I2C IC bridge the master MCU uses only two pins of its digital I/O to interface to the LCD.

In online market the PCF8574AP is built in module the a character LCD that cost a few Dollars. For an electronics hobbyist like me, I only bought a single DIP version of this chip. I can program it to read/write digital data before I decide to put it with a character LCD.

I decided to make my own I2C board module for my Arduino Uno board. This design follows the liquidCrystal_I2C LCD library from an author on GitHub. The overall design is not difference from the original one's but I made my own schematic and PCB design for my personal use.

I use Eagle CAD from Auto Desk software due to its richness of symbols and footprints library. The result yield with a small rectangular PCB module wired with PCF8574AP and a character LCD.

A DIY I2C character LCD built with PCF8574AP For PIC AVR and Arduino
Schematic Diagram

A DIY I2C character LCD built with PCF8574AP For PIC AVR and Arduino
PCB View

This design example is fully worked as I have tested it with Arduino Uno using its library.

A DIY I2C character LCD built with PCF8574AP For PIC AVR and Arduino

A DIY I2C character LCD built with PCF8574AP For PIC AVR and Arduino

A DIY I2C character LCD built with PCF8574AP For PIC AVR and Arduino

A zip file of this design could be download here.

A DIY I2C character LCD built with PCF8574AP For PIC AVR and Arduino
Connection Diagram
 

This Arduino sketch is from the library itself with some of my own modification.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// set the LCD address to 0x38 for PCF8574A with A0 A1 A2 wired to GND
LiquidCrystal_I2C lcd(0x38,16,2); 
void setup()
{
  // initialize the lcd
  lcd.init();                     
  lcd.backlight();
  lcd.clear();
  Serial.begin(9600);
  lcd.setCursor(0,0);
  lcd.print("Serial Port LCD");
}

void loop()
{
  // when characters arrive over the serial port...
  if (Serial.available()) {
    // wait a bit for the entire message to arrive
    delay(100);
    // clear the screen
    lcd.clear();
    // read all the available characters
    while (Serial.available() > 0) {
      // display each character to the LCD
      lcd.write(Serial.read());
    }
  }
}

This sketch could be download here, or you can get from the library after the installation.

Adskeep- Standard Ads

336x280

DIY Electronic Projects And Instruments

AdsKeeper - 2091654

Labels

23K256 (1) 24C16B (2) 25AA010A (2) 8051 (7) 93AA46B (1) ADC (39) Analog Comparator (1) Arduino (16) ARM (32) AT89C52 (7) ATMega32 (59) ATMega644P (27) AVR (88) AVR PCB (2) Bootloader (1) CCS PICC (31) Change Notify Interrupt (CNI) (2) DAC (2) DHT11 (5) Display (156) Distance Sensor (3) dot matrix (1) ds1307 (10) DS18B20 (6) ds3231 (1) ds3232 (2) dsPIC (13) dsPIC30F1010 (3) dsPIC30F2010 (13) EEPROM (5) Environment Sensor (6) ESP32 (1) esp8266 (1) Graphical LCD (3) HD44780 (10) I2C (38) ILI9341 (1) Input/Output (83) Interrupt (22) IoT PCB (1) Keil (5) Keypad (16) KS0108 (3) LCD (85) LM35 (4) Master/Slave (2) MAX7221 (1) MCP23017 (8) MCP23S17 (7) MCP4921 (1) MCP4922 (2) Meter (3) MikroC (2) MikroC ARM (1) MikroC dsPIC (8) Module PCB (2) Motor (15) MPLABX (73) Nokia 5110 LCD (5) OLED (2) One-Wire (7) Oscillator (8) PCB (13) PCD8544 (3) PCF8574 (10) PIC (117) PIC12F (3) PIC16 (105) PIC16F628A (3) PIC16F630 (2) PIC16F716 (4) PIC16F818 (11) PIC16F818/819 (3) PIC16F84A (16) PIC16F876A (2) PIC16F877A (9) PIC16F88 (2) PIC16F887 (60) PIC18 (19) PIC18F1220 (5) PIC18F2550 (5) PIC18F4550 (12) PICKit2 (1) PICMicro PCB (4) Pin Change Interrupt (1) PWM (12) RTC (12) SBN0064G (1) Sensor (15) SH1106 (3) Shift Register (15) Shift Registers (19) SN74HC595N (9) Software SPI (1) Software TWI (2) SPI (44) sprinf (3) ST7735 (1) STM32 (29) STM32 Black Pill (1) STM32 Blue Pill (12) STM32 HAL (23) STM32CubeIDE (32) STM32F103C8T6 (9) STM32F103R6 (18) STM32F401CCU6 (1) SysTick (7) temperature sensor (15) TFT (1) TG12864A (1) Thermometer (22) Timer/Counter (32) TM1637 (2) twi (10) UART (11) Ultrasonic (4) Voltmeter (7) WDT (1) XC16 (2) XC8 (96)