Presenting the usage of Core independent paripheral of PICs in this app note from Microchip. Link here (PDF)
It is possible to find out whether a measured signal is below or above a certain value/reference using a single comparator. But, what if the desired interval is between two values, the undervoltage and overvoltage protection?
The most convenient and fastest solution is to use two comparators and two references. The results are analyzed to decide which of the three intervals houses the measured signal. Using an Analog-to-Digital Converter (ADC) and core post-processing will yield the same result, but the process is slower and dependent on core availability.
After using the PIC16F1459 to build numerous USB HID input devices including a giant keyboard, a tiny keyboard, and a big red button, it was time to see if the PIC16F1459 could be used to control outputs too. Sticking with the industrial theme, I chose to build a USB controller for a, um, stack of industrial stack lights.
This is real-time clock based automatic LED lamp which we originally designed to use as night light. This lamp can programmed to turn on and off at the specific time of the day. For example, it can program to turn on at 6 PM on each day and to turn off at 4 AM next day.
The core component of this project is PIC16F883 MCU and it’s firmware is developed using MikroC Pro for PIC. We select this MCU because of it’s 7 KB flash memory, I2C, UART, E2PROM and built-in 8-bit and 16-bit timers.
To simplify things, this voting controller sits in “front” of an ordinary repeater controller, taking the audio and COS inputs from the various receivers and outputting a single audio and COS signal.
If the repeater system in question uses subaudible tones, it is recommended that “discriminator” audio (e.g. that which has not been de-emphasized) that has not been subject to a squelch or tone detector audio gate be applied to the voting controller from the link receivers as well as any “local” receivers as this will assure that the voted audio will contain the subaudible tone.
If you are an audio enthusiast and if you have multiple audio systems and speakers, you may definitely need to have a speaker selector switch. These switches allow you to route a audio signal through a switching system and distribute it to various speakers. Using this listener can select single amplifier – speaker combination through the switch. We mainly design this switch to share our speaker system with multiple audio amplifiers. We design this switch to handle 6 stereo audio channels.
See the full post on his blog here. Project files are available at Github.
After seeing this giant mechanical keyboard at Adafruit, I decided I had to build my own. Adafruit made theirs out of wood and used one of their Python-compatible microcontroller boards. I wanted a sloped top on my keyboard. I also wanted to check out what was new with Microchip’s USB device stack. I decided to build my keyboard out of aluminum and use a PIC18 microcontroller.
Halloween was right around the corner and I needed a timer with a bunch of relays to trigger some store-bought props and a fog machine periodically. (Mental note: read fog machine specs carefully—not all come with timer remotes.) My first thought was an Arduino and cheap relay board. Second thought was to build something with a micro and some relays. Third thought was that if I’m going to build something, might as well add DMX and package it up into a neat enclosure. Hence, the four channel DMX-controlled relay project was born.
Previously, I made a Pickit 3 clone – (see previous blog post). It works well, but I have often wondered just how little of its circuitry was needed to program and debug the boards I make. For instance – I primarily use the newer 3.3V PIC32 processors, so I really don’t need the ability to alter the voltage like the standard Pickit 3 can. I also have no real need for programming on the go, or even to provide power to the target MCU to program. Knowing this – I decided to see what I could do to remove the circuitry I didn’t need, yet still have a functioning programmer/debugger.