The 1-Wire protocol is a single-wire interface, half-duplex, bidirectional, low-speed and power, long-distance serial-data communication protocol. Although this protocol is classified as a 1-wire standard, at least two wires are required in the 1-wire standard bus — one for the data and/or power supply and another for the ground return. An additional wire might be…
Atmega162 UAR serial communication using Arduino IDE
I started working on a project with involves Atmega162 to be programmed in order to achieve the desired output. I started to write code using Atmel studio ide but I found it very hard to work with the Atmel studio ide. Atmel studio is slow and finding bugs etc is also very difficult. So I…
Controlling a BLDC Motor with an ESC
Brushless motors have much more satisfying results as compared to brushed motors. The basic difference between them is that in a brushless motor, the rotor itself contains the permanent magnets and the electromagnets move to the stator which is quite opposite as seen in a brushed motors. It’s more precise and can also factor the speed of the motor into the equation. This makes brushless motors more efficient. There is no sparking and much less electrical noise. There are no brushes to wear out. With the electromagnets on the stator, they are very easy to cool. You can have a lot of electromagnets on the stator for more precise control. The only disadvantage of a brushless motor is its higher initial cost, but you can often recover that cost through the greater efficiency over the life of the motor.
LED chaser using AVR ATMega16
You may have seen many different LED chaser projects. Simple LED chaser can be built using IC555 and digital counter chips. Many LED chasers are built using micro controllers. Micro controller based LED chaser have variety of different chasing effect. One can generate awesome LED chasing effect using micro controller programming. There may be 8 or 10 or 16 or even more LEDs connected with micro controller and it will turn LEDs ON/OFF LED or vary its brightness or blink them to create wonderful effects.
How to measure voltage of multiple batteries connected in string/array in series or parallel combination with microcontrollers
Measuring an individual battery voltage or a whole bank of battery using any microcontroller(arduino, microship pic, Avr, Atmega, Intel, NXP, stm32)is an easy task. You can find many tutorials on internet on how to do so. But what about if we want to measure an individual battery connected to a cluster of batteries in series…
Satellite dish antenna angle controller using ATmega16
The first thing we need to understand is that what it servomechanism? Servomechanism means generating error output as a difference between output feedback and control input and reduces this error until it becomes zero – that means when the system reaches desired state when the system produces desired output.
VAT meter using ATMega8
While measuring voltage and current with multi-meter, the probes have to be changed its position carefully. There is a probability of damaging the multi-meter, if voltage is measured in high current mode by mistake. In case, both voltage and current to be measured at a time, we have to use two multi-meters and care should be taken while wiring both the multi-meters. VAT meter is combination of Voltmeter, Ammeter and Thermometer. It can measure voltage and current simultaneously along with the temperature.
Interfacing 24×2 lcd with 8051(89c51,89c52) and microchip pic16f877 microcontroller
In this post i am going to explain how to interface 24×2 lcd with microcontroller. I am going to interface lcd with 8051(89c51,89c52) and Microchip Pic16f877 microcontrollers. 24×2 means 24-Coulombs and 2-Rows. Total characters which we can display on 24×2 lcd (24×2=48) 48. 24 Characters on each row. Interfacing 24×2 lcd with microcontroller is same as…
Electronic Voting Machine using Internal EEPROM of AVR
The microcontroller based voting machines made the process of voting and counting the voted lot easier than before. Previously the votes were marked in paper which are then stored safely in a box and inside a well secure room for days. The process of separating the votes and counting them manually may take a lot of days. But after finding the electronic voting machine the votes can be marked without using papers, which makes the voting process eco-friendly. Moreover it makes the counting process faster and the results can be announced in a comparatively shorter period of time. There should be a controller inside the Electronic Voting Machine (EVM) which controls the process and there should be storage medium where the details of the vote are stored. There should be a ballet unit which is been used in such a way that the one who came to cast the vote can do only one vote.
LCD Scrolling Display Module- (Part 30/46)
A microcontroller is a device which has an inbuilt processor surrounded by few dedicated hardware modules. Once the microcontroller initializes them they start operating on their own. In case of an ADC it will do the sampling and digital to analog conversion all by itself and keep the converted data in its buffer so that the microcontroller can read that later. The advantage of this kind of implementation is that the microcontroller is free to do other tasks during that time and hence increase the overall efficiency. That was the case of hardware modules or peripherals inside a microcontroller which increases the processing efficiency of the built in processor. The efficiency can increase even more if the external hardware attached to the microcontroller can also does lot more tasks by their own without depending the microcontroller.
How To Write a Simple Bootloader For AVR In C language- (Part 35/46)
The Boot-Loader is a code which executes when a microcontroller is powered ON or reset. It basically sets an environment for the application code to execute. It is the Boot-Loader that sets the hardware and loads the application code from any storage medium or received through external communication and let the application to execute. Thus a Boot-Loader has to perform the following basic function : Initialize the controller peripherals, Initialize the devices in the board, Allow an option for the user to select from the available applications to load, Load the selected application, Let the application code to execute. Apart from the above mentioned functions some Boot-Loaders can perform many other functions and there are Boot-Loaders which don’t perform all these functions like provide option to select the required application etc. The Boot-Loader codes in microcontrollers are actually very small and simple compared to the Boot-Loaders in advanced devices like PC. In most of the microcontroller the functionality of a Boot-Loader is limited only to set the initial clock and other settings for the microcontroller, load an application binary from the serial port etc.
How To Use SPM To load Application from EEPROM – (Part 34/46)
In any microcontroller the Boot-Loader is the first code which executes before the application code does. The major function of the Boot-Loader is to load the application code into the flash memory of the microcontroller and execute it. In AVR microcontroller the Self Programming Mode (SPM) helps the Boot-Loader to load a particular application from where the application binary is stored.The Boot-Loader may receive the code binary from other memory chips, SD-cards or through the serial port of the microcontroller in case of serial programming. It is then with the help of the SPM that the microcontroller write the binary code into the application flash section. In this particular project the operation of a Boot-Loader code using the SPM is demonstrated by re-writing flash memory with the code binary which has already been flashed into the built-in EEPROM of the ATMEGA16. The hardware used in this project includes ATMEGA16 as microcontroller, USBASP as the programmer and the software used are AVR STUDIO4 as IDE and AVR-BURNO-MAT as the burner software.
How to Use SPM for Flash to Flash Programming – (Part 33/46)
The Self Programming Mode (SPM) is a feature which enables a microcontroller to program its own flash memory. Using the SPM a microcontroller can program itself with an SPM code. The SPM is commonly used with the microcontroller Boot-Loader codes which help to program the microcontroller serially. In AVR microcontroller the SPM is available only for the code running in the BLS of the flash memory. With the help of the SPM a code in BLS can rewrite the application flash memory entirely or a part of it. It can even rewrite its own code in the BLS section. The SPM is a key factor of the Boot-Loader code since the major function of the Boot-Loader is to load an application code into the application flash section. The Boot-Loader may receive the code binary from other memory chips, SD-cards or through the serial port of the microcontroller in case of serial programming.
How to use I2C / TWI (Two Wire Interface) in AVR ATmega32- (Part 36/46)
This article explores the TWI interfacing between two ATmega32 controllers. Readers are advised to go through TWI Communication and TWI registers[[wysiwyg_imageupload::]]of ATmega32 before going further. Generally modes 1 & 3 and modes 2 & 4 are used together. This article explains the use of these four modes by an experiment.To establish the communication between two ATmega32 using TWI interface. First the Master starts by sending data then the slave transmits complement of the received data to the master. When the Master receives the complemented data, it shifts the original data to left. This process of transmitting and receiving continues. As the data value reaches 0x80 the whole process is repeated. At the starting, value of the original data is 0x01. The received value is displayed on PORTB at both the ends.
How to interface keypad with AVR microcontroller (ATmega16)- (Part 11/46)
Keypad is most widely used input device to provide input from the outside world to the microcontroller. The keypad makes an application more users interactive. [[wysiwyg_imageupload::]]The concept of interfacing a keypad with the ATmega16 is similar to interfacing it with any other microcontroller. The article of Interfacing keypad with 8051 can be referred for detailed description of the methodology used here. This article explains the interfacing of a 4×3 keypad with AVR microcontroller(ATmega16) and displaying the output on a LCD. The algorithm and detailed explanation for keypad interfacing is given in above mentioned article. The brief steps to interface the keypad with AVR are written below:1. Configure the row pins or column pins.2. Make all output pins to low and input pins to high.3. Keep monitoring the port value, where the key pad is connected.
How to interface LED with AVR Microcontroller (ATmega16)- (Part 4/46)
ATmega16 has 32 I/O pins to communicate with external devices. Before interfacing with external devices, these pins must be cofigured as input or output pin. [[wysiwyg_imageupload::]]This article demonstrates the basic I/O operation of ATmega 16 using LEDs. All the four ports can be configured to read an input from some external device or to give output to any external device as per the application. For e.g., a switch is connected to a particular pin, that pin should be configured as input to read the values from the switch (external Device in this case) and if you are connecting a LED to any pin of the port then that particular pin should be configured as output to transmit the signal to the LED (external device in this case). A single port can be configured such that some of the pins of the same port are input and some are output. Read on more to understand how LED interfacing is done with the help of an AVR.
How to use External (Hardware) Interrupts of AVR Microcontroller (ATmega16)- (Part 22/46)
When an interrupt occurs, the normal flow of instructions is suspended by the microcontroller and the code corresponding to the interrupt, which has occurred, is executed. Once the code corresponding to the interrupt is executed completely the execution again begins from the same instruction where it was stopped. Following is what happens when an interrupt…
Serial communication (USART) with different frame size using AVR microcontroller- (Part 14/46)
The previous article explains serial communication using 8-bit data transfer. AVR microcontroller also supports serial data transfer with frame size of 5, 6, 7 and 9 [[wysiwyg_imageupload::]]data bits. The size of data frame can be adjusted according to application. For example, consider a system that needs to transmit only ASCII codes as data. In this case data frame size of 7-bits is sufficient because data length of ASCII code is equal to 7-bit. This will makes system more efficient by saving time of one clock period in each data frame transmission. This article explains serial transfer of data with different frame size. A test program is written for 6-bit data communication between Microcontroller and PC. In this experiment the input is taken from the user through a keyboard. The corresponding data is sent to microcontroller via PC’s COM port. The microcontroller receives data and returns it again to PC’s COM port. The HyperTerminal is used to configure COM port to make it compatible for this experiment.