Week 1
Monday:
I was taught about interrupts in PIC microcontrollers. I learned that interrupts
temporarily halt the main program to execute specific tasks. I focused on
external interrupts and how to configure them using INTCON registers in MikroC.
Tuesday:
I practiced writing code to toggle an LED using an external interrupt on the INT0
pin. I understood the importance of enabling the Global Interrupt Enable (GIE)
bit.
Wednesday:
I was introduced to Pulse Width Modulation (PWM) and its applications in
controlling devices like motors and LEDs.
Thursday:
I configured the CCP1 module of PIC18F4550 for PWM generation. I adjusted the
duty cycle using a potentiometer and observed changes in LED brightness.
Friday:
I combined interrupt and PWM concepts to create a program where a button
press via interrupt changes the PWM duty cycle.
Week 2
Monday:
I learned about binary-to-hexadecimal conversion. I practiced manual and
MikroC-based conversions using sprintf and bitwise operations.
Tuesday:
I was taught about bitwise operators like AND, OR, XOR, and shifting bits, and
how they differ from bytewise operations.
Wednesday:
I explored the difference between PORT and TRIS registers. I learned that TRIS
sets data direction (input/output), while PORT handles data read/write.
Thursday:
I used TRIS to configure specific pins as inputs/outputs and manipulated the
corresponding PORT bits to toggle LEDs.
Friday:
I revised the week’s concepts and wrote a program that reads binary input from
switches, converts it to hexadecimal, and displays it on an LCD.
Week 3
Monday:
I was introduced to sensors and how they work. I learned about analog and
digital sensors, and how to interface them with a PIC microcontroller.
Tuesday:
I practiced using buttons in both analog and digital modes. For analog buttons, I
used a voltage divider circuit and read the voltage using the ADC module.
Wednesday:
I learned about digital buttons and how to debounce them in software using
delay loops or interrupt-based methods.
Thursday:
I was taught about voltage divider circuits. I built and tested a simple circuit to
scale down input voltage for the PIC ADC.
Friday:
I combined sensors, buttons, and voltage dividers in a project to read sensor
data, adjust parameters with a button, and display the output on an LCD.
Week 4: Electric Meter Project
Monday:
I started working on an electric meter project. I was introduced to the
components: ACS712 sensor, alternator, bridge rectifier, capacitor, lamps,
PIC18F4550, resistors, potentiometer, switches, and voltmeters.
Tuesday:
I designed and simulated the circuit in Proteus. I learned how to connect the
ACS712 current sensor to measure current and the bridge rectifier for AC-to-DC
conversion.
Wednesday:
I tested the circuit simulation and programmed the PIC18F4550 in MikroC to read
data from the ACS712 and calculate power.
Thursday:
I moved the design from simulation to a physical circuit. I connected the
components on a breadboard and ensured proper wiring for the sensors and
voltmeters.
Friday:
I completed the project by testing the physical circuit. I verified the readings
from the ACS712 and voltmeters and ensured the electric meter displayed
accurate power consumption data.
Week 1: Keypad and 7-Segment Display Project
Monday:
I started working on a project to display numbers typed on a 4x4 keypad onto a
7-segment display. I was introduced to the components: 7-segment display
(MPX1CC), keypad (smallcalc), NPN transistors, PIC16F877A, and resistors.
Tuesday:
I learned about configuring the 4x4 keypad and how pull-up and pull-down
resistors are used to stabilize the keypad inputs. I wrote code to scan the keypad
using row and column detection and display the pressed key on the serial
monitor for testing.
Wednesday:
I was taught about multiplexing the 7-segment display. I used NPN transistors to
control which segment is active and programmed the PIC16F877A to display
numbers by sending specific patterns to the segment pins.
Thursday:
I connected the keypad and 7-segment display to the PIC16F877A. I modified the
code so the number pressed on the keypad is directly displayed on the 7-
segment. I practiced using pull-up and pull-down resistors to avoid floating input
issues.
Friday:
I completed the project by integrating the keypad, 7-segment display, and
PIC16F877A. I tested the circuit to ensure each key press displayed the correct
number, and I debugged minor issues with the code and connections.