PIC Controllers

PIC Controllers

PIC is a microcontroller family developed by Microchip Technology and has a wide range of uses in embedded systems.


PIC Basics

Introduction to PIC Microcontroller

Basic overview of various PIC families and introduction to PIC18F4550.

Getting started with PIC18F4550 and MPLABX IDE

Start developing code for PIC18F4550 using MPLABX IDE.

PIC18F4550 ADC

PIC18F4550 has a 10-bit internal ADC with 13 input channels.

PIC18F4550 USART

USART (Universal Synchronous Asynchronous Receiver Transmitter) module in PIC18F4550 is used for communicating with many devices serially.

PIC18F4550 Timer

PIC18F4550 has three 16-bit and one 8-bit timer. The timer is generally used for delay generation or event counting.

PIC18F4550 Timer Capture (CCP) mode

Capture mode in PIC is widely used to capture the time of an event occurrence. PIC18F4550 has two capture modules.

PIC18F4550 Timer Compare Mode

PIC18F4550 has an internal compare mode which is used to generate a waveform with various duty cycles also used to trigger an event.

PIC18F4550 PWM

Pulse Width Modulation (PWM) is a technique by which the width of a pulse is varied while keeping the frequency constant. PWM is generally used to control the speed of the DC motors or servo motors.

PIC18F4550 On-Chip EEPROM

PIC18F4550 has 256 Byte EEPROM non-volatile memory which is used to store data.

PIC18F4550 External Interrupt

The external interrupt is a mechanism for devices that interrupts the controller to get the attention of the controller. Here we are going to toggle LED using a switch as an external interrupt.

PIC18F4550 I2C

I2C (Inter-Integrated Circuit) is a multi-master, multi-slave serial protocol which is used to communicate with low speed devices like EEPROM, RTC, Microcontrollers, some sensor modules like Gyro MPU, Magnetometer, etc. I2C needs only Two wire for communication.

PIC18F4550 SPI

Serial Peripheral Interface (SPI) is a communication protocol used by the microcontroller for communicating with one or more devices serially over short distance. It is used to communicate with devices like SD card, EEPROM, Nokia display, and also communication between two microcontrollers, etc.

PIC18F4550 Watchdog Timer

Watchdog Timer (WDT) is a hardware timer which automatically resets the system when its timeout period exceeds. It is mostly used in Real-Time Applications.

PIC18F4550 Sleep Mode

Sleep mode is a mode in which PIC18F4550 will put itself in low power consumption state to save power.

IoT and Wireless

HC-05 Bluetooth Module Interfacing with PIC18F4550

Bluetooth is a wireless communication protocol used to communicate over short distances. Here we design a smartphone-controlled LED using the HC-05 Bluetooth module.

XBee interface with PIC18F4550

XBee is a radio module developed by Digi International. It is a popular wireless transceiver used to send or receive data.

TCP Client using SIM900A GPRS and PIC18F4550

Transmission Control Protocol (TCP) is a standard transport layer internet protocol in between server and client. Using the SIM900A GPRS module, we can implement TCP server/client over GPRS for IoT applications.

PIC18F4550 Interface with WiFi ESP8266 module

ESP8266 is Wi-Fi enabled system on chip (SoC) module developed by Espressif system. It is mostly used for the development of IoT (Internet of Things) embedded applications.

HTTP Client using SIM900A GPRS and PIC18F4550

Hypertext Transfer Protocol (HTTP) is a standard application layer protocol in between server and client. Using the SIM900A GPRS module, we can implement HTTP server/client over GPRS for IoT applications.

MQTT Client using SIM900A GPRS and PIC18F4550

MQTT (Message Queue Telemetry Transport) is a lightweight messaging protocol that is built on TCP protocol. Using the SIM900A GPRS module, we can implement MQTT server/client over GPRS for IoT applications.

Displays

LCD16x2 interfacing with PIC18F4550

LCD16x2 has two lines with 16 characters in each line. LCD16x2 generally used for displaying parameter values and string in an embedded applications.

Interfacing LCD 16x2 in 4-bit mode with PIC18F4550

LCD16x2 can be interfaced by using 4 data lines, which saves GPIO pins.

LCD custom character display using PIC18F4550

LCD16x2 can display user-defined custom characters. This can be used for displaying symbols and different patterns.

Nokia5110 graphical display interfacing with PIC18F4550

Nokia5110 is a 48x84 dot LCD display with Serial Peripheral Interface (SPI) Connectivity. It was designed for cell phones, also used in embedded applications.

GLCD 128x64 interfacing with PIC18F4550 Microcontroller.

GLCD 128x64 is a Graphical LCD having a 128x64 pixel resolution. It is used to display custom character, values, text with different fonts, binary images.

Sensors

Ultrasonic Module HC-SR04 interfacing with PIC18F4550

The ultrasonic module HC-SR04 is generally used for finding distance value and obstacle detection. It can operate in the range of 2-400cm.

DHT11 Sensor Interfacing with PIC18F4550.

Interface single wire DHT11 sensor with PIC18F4550 and read the value of Temperature and Humidity from DHT11. Display these Temperature and Humidity values on a 16x2 LCD.

PIR Motion Sensor Interface with PIC18F4550

PIR motion sensor senses the Infrared signal radiated from moving human or animal body. It is generally used to detect the motions of human or animal.

LM35 Temperature Sensor Interfacing with PIC18F4550

LM35 is a sensor that is used to measure temperature. It provides an electrical output proportional to the temperature (in Celsius).

Magnetometer HMC5883L interfacing with PIC18F4550

Magnetometer HMC5883L is developed by Honeywell which gives heading directions. A magnetometer is used as a compass in Mobiles Phones, Navigation systems in vehicles to indicate directions.

Accelerometer ADXL335 Interfacing with PIC18F4550

The Accelerometer ADXL335 sensor measures the acceleration of gravity. It is used to measure the angle of tilt or inclination in application systems such as in mobile devices, gaming applications, Laptops, digital cameras, Airplanes etc.

MPU6050 (Gyroscope + Accelerometer + Temperature) interface with PIC18F4550.

MPU6050 (Gyroscope + Accelerometer + Temperature) is a combination of a 3-axis Gyroscope, 3-axis Accelerometer, and Temperature sensor with an onboard Digital Motion Processor (DMP). It is used in mobile devices, motion enabled games, 3D mice, Gesture (motion command) technology, etc.

Thermocouple Interfacing with PIC18F4550

A thermocouple is a device consisting of two dissimilar metals connected together creating a junction that is used for measuring the temperature.

NTC Thermistor Interfacing with PIC18F4550

A thermistor is a type of resistor whose resistance changes in accordance with the change in temperature. It is used to measure the temperature over a small range typically -100 °C to 300 °C.

Modules

RFID Reader EM18 Interface with PIC18F4550

EM18 RFID reader module is used to read 125 kHz RFID card wirelessly for a very short distance. It is generally used in applications like attendance system, access management, tracking of goods, etc.

Analog Joystick interface with PIC18F4550

It is an input device used to control the pointer movement in the 2-dimension axis. Generally, the joystick is used for getting angular movements.

4x4 Keypad interfacing with PIC18F4550

The keypad is an input device which generally used in applications such as calculator, ATM machines, computer,s etc.

GPS module Interfacing with PIC18F4550

Interfaced GPS receiver module with PIC18F4550 and display the Time, Latitude, Longitude, and Altitude on LCD20x4 display. PIC18F4550 read the data serially from the GPS receiver using USART communication with 9600 Baud rate.

GSM module Interfacing with PIC18F4550

SIM900A GSM module is a communication device which is used to make or receive calls, send or receive SMS, connecting to the internet over GPRS.

Real Time Clock RTC DS1307 interfacing with PIC18F4550

DS1307 is a two-wire (I2C) serial interface RTC (Real Time Clock) with 56 bytes of nonvolatile RAM. This provides clock and calendar with a second, minute, hour, day, date, month, and year.

Motors and Actuators

Servo Motor Interfacing with PIC18F4550

Servo motor is an electromechanical device that consists of a Motor, Gear assembly, and feedback circuitry. It is used in Robotics applications, airplanes, rudders, quadcopters, etc.

DC motor interfacing with PIC18F4550

DC Motor is a device that converts electrical energy into mechanical energy. It is used in the robotics field, toys, quadcopters etc.

Stepper Motor interfacing with PIC18F4550

Interface stepper motor with PIC18F4550 to rotate it 360° clockwise by half step sequence and 360° anticlockwise by full step sequence. Here, ULN2003 driver is used to driving a stepper motor.