PIC based bluetooth thermometer

Jamie needed a thermometer so he could see what temperature is outside. Instead of purchasing he decided to build one so he could get more out of it. His system consists of PIC12F675 microcontroller which takes temperature readings from DS18B20 sensor. Instead of displaying data on some sort indicator he sends temperature value using Sure TTL Bluetooth module. Bluetooth module talks to MCU using Serial Port protocol, so it can be connected directly to MCY serial interface. Temperature values can be seen on terminal screen that are updated every 10s. Continue reading

Tiny Servo Controller

Servo motors are common choice where mechanics is involved. These may be robotic claws, door locks or simply RC models. As you may know in order to make servo motor turn you need provide a PWM signal with changeable duty cycle. This is where microcontrollers are good at. Anyway if you finished your mechanical part of project and want to test how it works you need a controller which may not be finished. This is where this mini servo controller becomes handy. Dilshan built a PIC based mini servo controller which which may be used to drive most popular servos. It has two control interfaces – analog where servo can be turned by changing pot value; and digital where servo is controlled with push buttons. PIC12F675 takes care of generating correct PWM upon control signals. Continue reading

Battery monitoring using a PIC12f675

In wireless systems that rely on batteries for power it is very critical that there should be a way to know when the battery is about to expire while having the right amount of time to replace it. In this post we are given a way to determine battery status by using the microcontroller’s analog to digital (ADC) converter in conjunction with a resistor, a diode and an LED. An actual application was also discussed. A wireless sensor node powered by two AAA batteries and controlled by a PIC12F675 is used to gather data from a distant location, it periodically sends sensed parameters to a server running a data acquisition software. To be able to monitor the condition of the battery a resistor – diode series network was added  – to measure voltage the the resistor and diode pair is driven high and low by a GPIO pin while connecting the junction of the two devices into the PIC12F657’s ADC enables the PIC12F675 to read the voltage level. When the battery drains down the levels that the PIC is seeing is… Continue reading

Simple and precize 1Hz clock generator

Can you think of where 1Hz clock signal could be used? Well probably in many places inlcuding fake alarm LED blinker, driving various counters or clocks… Anyway this is real fun project as there are PIC12F675 microcontroller’s 16 bit timer used to generate the clock signal. Microcontroller is driven by 32,768Hz crystal – standard crystal that is used in most digital clocks. Small, simple and reliable. Continue reading

PIC12F675 controlled electrical key-lock

For building 12 button key-lock you don’t need microcontroller with many ports. Ivica Novakovic has a nice demonstration on how low pin count microcontroller with ADC can be used to read many keys. Key-lock itself is simple. It controls two relays where electromagnets or motors can be attached. In key-lock circuit there are only one one wire used to read buttons. Of course there are also VCC and GND (power supply) needed. Author also included simple piezo buzzer for sounding keys. Each keypad is positioned between resistor voltage dividers so when one of buttons is pressed, ADC reads a voltage drop. This way each button provides different voltages when pressed. As there is 10 bit ADC used, there can be 1024 different voltages read, but in reality there has to be voltage range left for one button, because voltage may fluctuate. For 12 buttons each button has 85 value range what is enough for reliable operation. With more precise resistors and stabile power supply there can be more buttons interfaces if needed. Project files and firmware are available for download.[via] Continue reading