A simple digital thermometer
|
|
|
- Hollie Chandler
- 9 years ago
- Views:
Transcription
1 Home Electronics Tuxkid E-cards Linux & Computer stuff Graphics, Film & Animation Photos Online-Shop Content: Introduction What is I2C? How I2C/TWI works The plan The temperature sensor The circuit Putting everything together Using the I2C communication How warm is it? The LCD display A little GUI Makeing temperature data available on the web How it works: Analog to digital conversion How it works: I2C communication, Atmega8 part How it works: I2C communication, Linux side How to mount the outdoor sensor Conclusion References A simple digital thermometer Abstract: This is an update of two articles which I wrote in 2005 about a small digital thermometer. The circuit seems to be very popular because it is so simple and still has a very useful and practical application. It is the perfect circuit to get started with AVR microcontrollers. This updated article replaces the articles from 2005 and simplifies the software as well as the hardware. The original documents from 2005 are linked at the end of this article in case you still need them. By Guido Socher <guido_at_tuxgraphics.org> This thermometer can be used as a standalone thermometer with LCD display or it can be read out with a PC running Linux, Windows, MacOSX or solaris. BSD Unix and others are probably also possible to use for reading the temperatures. No special drivers are needed.
2 The hardware described here can be ordered from Introduction When you use such an advanced device as a microcontroller to measure analog or digital signals then you want of course interfaces to evaluate the data or send commands to the microcontroller. In all the articles presented here in the past we always used rs232 communication with the UART that is included in the microcontroller. The problem is that this requires an additional MAX232 chip, 4 extra capacitors and an external crystal osciallator for the microcontroller. In any case it is a lot of extra parts... and we can avoid them! We go here for connectivity via I2C because it is reliable and really easy to build. The amount of data to transfer between PC and microcontroller is very small (just a few bytes). Speed is therefore no issue at all. The LCD display is optional. The software is written such that it is identical for the hardware with and without the LCD display. What is I2C? I2C (prounouce "eye-square-see") is a two-wire bidirectional communication interface. It was invented by Philips and they have protected this name. This is why other manufacturers use a different name for the same protocol. Atmel calls I2C "two wire interface" (TWI). Many of you might already be using I2C on their PCs without knowing it. All modern motherboards have an I2C bus to read temperatures, fan speed, information about available memory... all kind of hardware information. This I2C bus is unfortunately not available on the outside of the PC (there is no physical connector). Therefore we will have to use something else. How I2C/TWI works The datasheet of the Atmega8 (see references) has actually a very detailed description starting on page 160. I will therefore present here just an overview. After this overview you will be able to understand the description in the datasheet. On the I2C bus you always have one master and one or several slave devices. The master is the device that initiates the communication and controls the clock. The two wires of this bus are called SDA (data line) and SCL (clock line). Each of the devices on the bus must be powered independently (same as with traditional rs232 communication). The two lines of the bus are normally connected via 4.7K pullup resistors to logically "High" (+5V for 5V ICs). This gives an electrical "or" connection between all the devices. A device just puls a line to GND when it wants to transmit a 0 or leaves it "High" when it sends a 1.
3 The master starts a communication by sending a pattern called "start condition" and then addresses the device it wants to talk to. Each device on the bus has a 7 bit unique address. After that the master sends a bit which indicates if it wants to read or write data. The slave will now acknowledge that it has understood the master by sending an ack-bit. In other words we have now seen 9 bits of data on the bus (7 address bits + read_bit + ack-bit): start 7-bit slave adr read_data bit wait for ack... data comes here What s next? Next we can receive or transmit data. Data is always a multiple of 8 bits (1 byte) and must be acknowledged by an ack-bit. In other words we will always see 9-bit packets on the bus. When the communication is over then the master must transmit a "stop condition". In other words the master must know how much data will come when it reads data from a slave. This is however not a problem since you can transmit this information inside the user protocol. We will e.g use the zero byte at the end of a string to indicate that there is no more data. The data on the SDA wire is valid while the SCL is 1. Like this: SDA H -\ /---\ /---\ /---\ L \-----/ \---/ \ / \ SCL H ----\ /-\ /-\ /-\ /-\ /-\ L \---/ \-----/ \---/ \--/ \--/ \-... START One of the best things about this protocol is that you do not need a precise and synchronous clock signal. The protocol does still work when there is a little bit jitter in the clock signal. Exactly this property makes it possible to implement the I2C protocol in a user space application without the need for a kernel driver or special hardware (like a UART). Cool isn t it? The plan As said before we cannot use the PCs internal I2C bus but we can use any external interface where we can send and receive individual data bits. We will just use the RS232 hardware interface of our PC. In other words our communication interface is RS232 but we save the MAX232 hardware, capacitors, etc... A USB to RS232 converter can be used if you PC does not have a RS232 port. The LCD display is optional but if you add one then you can use this as well as a standalone thermometer with local LCD display. The temperature sensor It is possible to get already calibrated temperature sensors (some of
4 It is possible to get already calibrated temperature sensors (some of which talk I2C ;-) but they are quite expensive. NTCs are cheaper and almost as good even without individual calibration. If you calibrate them a bit then it is possible to achieve accuracy behind the decimal point. One problem with NTCs is that they are non linear. It is however just a matter of semiconductor physics to find the right formula to correct the non linear curve. The microcontroller is a little computer therefore mathematical operations are not a problem. NTCs are temperature dependent resistors. The value R of the NTC at a given temperature is: NTCs are small and cheap with reasonable accuracy T or Tc is the temperature value that we are looking for. Rn is the resistive value of the NTC at 25 C. You can buy 4k7, 10K,... NTCs so Rn is this value. The circuit Most of the components are actually for the power supply part. We need a stable reference voltage for the NTCs otherwise the temperature readings will not be accurate. There is also an LED connected. It does not cost much and is really useful for basic debugging and initial hardware test. The hardware test program test-led.c just causes the LED to blink and is part of the software package (see download at the end of this article). The analog to digital converter in the microcontroller is used to measure the voltage on the NTC which will then be converted into a temperature value. The Atmega8 has two options on what is used as a reference voltage for the analog to digital converter. It can use either the 5V (AVcc) or an internal 2.56V reference. For the inside temperatures we will not need a temperature range which is as big as for the outside sensor. +10 C
5 to +40 C should normally be sufficient. We can therefore use the 2.56V reference when we measure the indoor sensor. This gives very high accuracy as the 1024 possible digital values are then spread over only V that is we get a resolution of 2.5mV (more accurate than most digital voltmeters!). The CD-pin on the RS232 is an input line and it is connected to SDA on the I2C bus. We use it to read data from the microcontroller. DTR and RTS are output lines. When the PC puts data-bits on the SDA line then it just toggles DTR. The I2C-master (here the linux PC) controls the SCL (clock) line. In other words the clock line is an output line on the rs232. Circuit diagram. Click on the diagram for a more detailed view in PDF. Note: The LCD display is optional. Just connect nothing if you do not want to use the LCD display. Putting everything together When you assemble the circuit then pay attention to the parts where polarity is important: Electrolyte capactitors, the diode, 78L05, LED and the microcontroller.
6 Before you solder the microcontroller onto the board you should verify the power supply part. If this does not work you will not only get incorrect temperature readings but you may also destroy the microcontroller. Therefore connect external power (e.g a 9V battery) and verify with a voltmeter that you get exactly 5V on the socket pin of the microcontroller. As a next step connect the circuit to the rs232 port of your linux PC and run the porgram i2c_rs232_pintest with various combinations of signals. i2c_rs232_pintest -d 1 -c 1 i2c_rs232_pintest -d 0 -c 1 i2c_rs232_pintest -d 1 -c 0 This program sets the voltage levels on the RTS (used as SCL, option -c) and DTR (used as SDA, option -d) pins of the rs232 port. The rs232 port has voltage levels of about +/- 10V. Behind the Z-diode you should however measure only -0.7 for a logical zero and +4-5V for a logical one. Insert the microcontroller only after your circuit has passed the above tests. The complete circuit without LCD display Using the I2C communication Download (see references) the linuxi2ctemp tar.gz file and unpack it. The I2C communication is implemented in 2 files: i2c_avr.c -- the i2c statemachine for the atmega8 i2c_m.c -- the complete i2c protocol on the linux side I have given the atmega8 the slave address "3". To send the string "hello" to the atmega8 you would execute the following C functions: address_slave(3,0); // tell the slave that we will send something i2c_tx_string("hello"); i2cstop(); // release the i2c bus on the microcontroller side you would receive this "hello" string with i2c_get_received_data(rec_buf); Very easy. Reading data from the microcontroller is similar. Look at the file i2ctemp_avr_main.c to
7 see how it works when the temperature readings are done. How warm is it? To compile and load the code for the microcontroller run the following commands from the linuxi2ctemp package directory. make make load Compile the two programs i2c_rs232_pintest and i2ctemp_linux make i2c_rs232_pintest make i2ctemp_linux... or just use the pre-compiled versions in the "bin" subdirectory. To read temperatures simply run: i2ctemp_linux... and it will print indoor and outdoor temperatures. To make this data available on a website I suggest to not directly run i2ctemp_linux from the webserver because the i2c communication is very slow. Instead run it from a cron job and write from there to a html file. An example script is included in the README file of the linuxi2ctemp package. The LCD display For the LCD display we use a HD44780 compatible display as it was already used in previous articles. These displays are very easy to use in combination with microcontrollers because you can send them ASCII characters. I use the same LCD driver code as in all previous articles. The files which implement this LCD driver are lcd.c lcd.h and lcd_hw.h. They are in the package which you can download at the end of this article. The interface for this code is really easy to use: // call this once: // initialize LCD display, cursor off lcd_init(lcd_disp_on); // to write some text we first clear // the display: lcd_clrscr(); lcd_puts("ok the LCD"); // go to the second line: lcd_gotoxy(0,1); lcd_puts("works!"); The software is written such that it works with both 16x2 and 20x2 LCD displays. There is also a test-lcd.c program which can be use to test the LCD display. After loading the corresponding test-lcd.hex file into the microcontroller you should see "=OK=" on the display.
8 The complete circuit with LCD display The LCD display has a contrast pin. Connecting this pin to GND results in maximum darkness of the display. The total darkness off the display depends however very much on the make of the display, the viewing angle and power supply voltage level. A change of 0.2V results already in a noticeable change of display darkness. In most cases it is quite OK to connect the "CON" pin directly to GND. If that gives however a too dark display then add a voltage divider as shown here: Since the CON pin is normally directly next to the VCC pin the easiest solution is to solder the 10K resistors directly to the display and insert the 270 Ohm resistor in the wire that goes to the CON pin.
9 A little GUI For those wo would like to have GUI on their desktop I made a really simple gui. It consists just of 2 labels which are used to display the two line output of i2ctemp_linux command (the i2ctemp_linux is the command which read the temperatures from the circuit via I2C): Now we have a really cool thermometer. With a lot of possibilities: You can read the temperature locally from the display You can have a little GUI on your desktop You can write values with a cronjob to a log file to get long term statistics I will now use the rest of this ariticle to explain a bit the internals of the software. Makeing temperature data available on the web You should not run i2ctemp_linux directly from the webserver. It is too slow. Instead add a contab entry which runs a script to generate an appropriate webpage e.g every 15 minutes: The script to run from contab: #!/bin/sh webpagefile=/home/httpd/html/temp.html echo "<h2>local temperatures</h2><pre>" > $webpagefile i2ctemp_linux sed -e s/i=/inside /;s/o=/outside / >> $webpagefile echo " " >> $webpagefile date >> $webpagefile echo "</pre>" >> $webpagefile Copy the i2ctemp_linux program to /usr/bin and run the above script e.g from a crontab entry which looks like this (load a file containing this line with the command crontab): 1,15,30,45 * * * * /the/above/listed/scriptfile How it works: Analog to digital conversion The Atmega8 supports two modes. In the continous mode it permanently measures the analog signals and just triggers an interrupt when the measurement is ready. The application software can then use this interrupt to quickly copy the result from two registers into a variable. The other mode is the so called single shot mode. Here only one conversion is done. The single shot mode is still pretty fast. Including the setup time of the required registers before and the reading out you can still get 100 conversion per second. This is more than fast enough for us. So we use this mode because it is easier to use in functional programming. We just call a function and it returns the ADC values.
10 The Atmega8 has analog input pins ADC0 to ADC3. In addition to this there are the pins AGND (analog ground, connected to normal ground), AREF (the reference voltage) and AVCC (connected to +5V). During analog to digital conversion the analog signal is compared with AREF. An analog signal equal to AREF corresponds to a digital value of AREF can be any external reference between 0 and 5V. Without the use of an external reference you can still do precise conversion by either using an internal reference (2.56V) or AVCC. What is used is decided in the software via the REFS0 and REFS1 bits in the ADMUX register. The analog to digital converter can convert one of the input lines ADC0-ADC3 at a time. Before you start conversion you have to set bits in the ADMUX register to tell the chip which channel to use. A simple analog to digital conversion would then look like this: unsigned char channel=0; // measure ADC0 int analog_result; // use internal 2.56V ref: ADMUX=(1<<REFS1) (1<<REFS0) (channel & 0x0f); // ADCSR: ADC Control and Status Register // ADPS2..ADPS0: ADC frequency Prescaler Select Bits // ADEN: Analog Digital Converter Enable, set this before setting ADSC ADCSR=(1<<ADEN) (1<<ADPS2); // start conversion ADCSR = (1<<ADSC); while(bit_is_set(adcsr,adsc)); // wait for result adlow=adcl; // read low first!! adhigh=adch; analog_result=((adhigh<<8) (adlow & 0xFF)); As a software designer you must watch out that you read the lower 8 bits first as the microcontroller has some locking mechanism to simulate "atomic" reading. After this we have the analog to digital conversion result available as a number in the analog_result variable. This can the be used elsewhere in the program. Very easy. The ADPS register (ADC clock pre-scaler bits) must be set such that the clock frequency divided by the pre-scale factor is a value between 50 and 200 KHz. The division factor is 2^ADPS (two to the power of the ADPS bits value). The above setting (ADPS2=1, ADPS1=0, ADPS0=0 = decimal 4 -> 2^4 = 16 -> division factor = 16) is good for a clock frequency of 1MHz. The Atmega8 has several possibilities for reference voltage selection. The reference voltage is compared against our analog input voltage. It is the voltage that corresponds to a digital value of 1023.
11 REFS0=0, REFS1=0 REFS0=0, REFS1=1 REFS0=1, REFS1=1 use external AREF, Internal Vref turned off AVCC with optional external capacitor at AREF pin Internal 2.56V Voltage Reference with (optional) external capacitor at AREF pin An optional capacitor on the AREF pin can be used to suppress noise and stabilize the AREF voltage (in case you switch between differnt voltage levels: remember that it needs time to charge the capacitor). How it works: I2C communication, Atmega8 part I explained already in the beginning of this article how this I2C protocol works. Let s now have a look at the software. The Atmega8 has hardware support for I2C communication. Therefore you do not actually need to implement the protocol. Instead you need to implement a state machine. This tells the Atmega8 what to do next. Here is an example: An I2C packet with our own slave address was received. The Atmega8 will now call the function SIGNAL(SIG_2WIRE_SERIAL) with the status code 0x60 (for other events we would get other codes). --> We must now set a number of registers to tell the Atmega8 what to do next. In this case we will tell it: receive the data part and acknowledge it. When the actual data was received we will get called with status code 0x80. --> Now we read the databyte and tell the Atmega8 to acknowledge the next data byte if it comes. When the communication is over we get a status code 0xA0 (stop condition) and we can tell our application that a complete message was received. The whole state machine for the I2C slave mode and all possible states are explained in the datasheet of the Atmega8 on page 183 (see link in reference section at the end of the article). Transmitting data is very similar. Have a look at the code! How it works: I2C communication, Linux side First a word about the hardware. Even though I2C is a bus we only use a point to point connection between one slave and the Linux PC as I2C master. We can therefore save the pullup resistor as long as the slave can still pull down the line without causing a short circuit. We just put a 4.7K resistor into the line. The voltage levels must be adjusted. The voltage levels on the RS232 side are +/- 10V. This would
12 be too much for the Atmeag8 but it has also an internal over voltage protection diode. We limit with the 4.7K resistors the current so much that it is sufficient to relay that protection diode for over voltage protection. The Linux I2C software implements basically a complete I2C stack. This is because I wanted to have a little command line utility which does not need any special library or kernel module. It should just work on its own. If you look into the file i2c_m.c (see download) you can see that really every I2C message is build bit by bit. To generate the "bits" we must toggle the physical pins on the rc232 interface. This is done with ioctl calls: // set RTS pin: int arg=tiocm_rts; ioctl(fd, TIOCMBIS, &arg);... or to produce a zero: // clear RTS pin: int arg=tiocm_rts; ioctl(fd, TIOCMBIC, &arg); If you want to port this stack to a different OS then you just change these lines. The rest is plain C and independent of the operating system. How to mount the outdoor sensor The outdoor sensor must be protected properly against rain (and sun). You can try to wrap it into some plastic but I don t recommend this. No matter how tight you tie it, water will eventually come in and stay in there. The NTC is quite robust and it does not matter if it gets a bit humid as long as it can dry again. Use a up-side down mounted tablet tube which you leave open at the bottom. This way any water will be able to get out again. Conclusion I am now using the thermometer for 2 years and I really like it because you can read it out directly on the display and you have the possibility to store all the data on your PC. You can view it there, draw graphs do statistics. Really cool. The I2C protocol requires very little extra hardware and is optimized for transmitting or receiving small amounts of data. That is exactly what we need when we want to communicate with our own microcontroller hardware. It is really a very nice solution!
13 References Software, documents and future updates: Download page for this article shop.tuxgraphics.org the online shop where you can get all the needed components. The old 2005 articles (this article is based on those and replaces them): : A digital thermometer or talk I2C to your atmel microcontroller : Part 2 -- A digital thermometer or talk I2C to your atmel microcontroller <--, tuxgraphics Home Go to the index of this section Guido Socher, tuxgraphics.org , generated by tuxgrparser version 2.55
Data Acquisition Module with I2C interface «I2C-FLEXEL» User s Guide
Data Acquisition Module with I2C interface «I2C-FLEXEL» User s Guide Sensors LCD Real Time Clock/ Calendar DC Motors Buzzer LED dimming Relay control I2C-FLEXEL PS2 Keyboards Servo Motors IR Remote Control
If an occupancy of room is zero, i.e. room is empty then light source will be switched off automatically
EE389 Electronic Design Lab Project Report, EE Dept, IIT Bombay, Nov 2009 Fully-automated control of lighting and security system of a Room Group No: D2 Bharat Bhushan (06d04026) Sravan
The Answer to the 14 Most Frequently Asked Modbus Questions
Modbus Frequently Asked Questions WP-34-REV0-0609-1/7 The Answer to the 14 Most Frequently Asked Modbus Questions Exactly what is Modbus? Modbus is an open serial communications protocol widely used in
MODULE BOUSSOLE ÉLECTRONIQUE CMPS03 Référence : 0660-3
MODULE BOUSSOLE ÉLECTRONIQUE CMPS03 Référence : 0660-3 CMPS03 Magnetic Compass. Voltage : 5v only required Current : 20mA Typ. Resolution : 0.1 Degree Accuracy : 3-4 degrees approx. after calibration Output
The I2C Bus. NXP Semiconductors: UM10204 I2C-bus specification and user manual. 14.10.2010 HAW - Arduino 1
The I2C Bus Introduction The I2C-bus is a de facto world standard that is now implemented in over 1000 different ICs manufactured by more than 50 companies. Additionally, the versatile I2C-bus is used
NB3H5150 I2C Programming Guide. I2C/SMBus Custom Configuration Application Note
NB3H550 I2C Programming Guide I2C/SMBus Custom Configuration Application Note 3/4/206 Table of Contents Introduction... 3 Overview Process of Configuring NB3H550 via I2C/SMBus... 3 Standard I2C Communication
PCAN-MicroMod Universal I/O Module with CAN Interface. User Manual. Document version 2.1.0 (2014-01-16)
PCAN-MicroMod Universal I/O Module with CAN Interface User Manual Document version 2.1.0 (2014-01-16) Products taken into account Product Name Part number Model PCAN-MicroMod IPEH-002080 with firmware
AVR125: ADC of tinyavr in Single Ended Mode. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR125: ADC of tinyavr in Single Ended Mode Features Up to 10bit resolution Up to 15kSPS Auto triggered and single conversion mode Optional left adjustment for ADC result readout Driver source code included
AVR126: ADC of megaavr in Single Ended Mode. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR126: ADC of megaavr in Single Ended Mode APPLICATION NOTE Introduction Atmel megaavr devices have a successive approximation Analog-to- Digital Converter (ADC) capable of
User s Manual of Board Microcontroller ET-MEGA2560-ADK ET-MEGA2560-ADK
User s Manual of Board Microcontroller ET-MEGA2560-ADK ET-MEGA2560-ADK Because Arduino that is the development project on AVR MCU as Open Source has been published, it is popular and widespread shortly.
RS-485 Protocol Manual
RS-485 Protocol Manual Revision: 1.0 January 11, 2000 RS-485 Protocol Guidelines and Description Page i Table of Contents 1.0 COMMUNICATIONS BUS OVERVIEW... 1 2.0 DESIGN GUIDELINES... 1 2.1 Hardware Design
QUICK START GUIDE FOR DEMONSTRATION CIRCUIT 956 24-BIT DIFFERENTIAL ADC WITH I2C LTC2485 DESCRIPTION
LTC2485 DESCRIPTION Demonstration circuit 956 features the LTC2485, a 24-Bit high performance Σ analog-to-digital converter (ADC). The LTC2485 features 2ppm linearity, 0.5µV offset, and 600nV RMS noise.
Using the AVR microcontroller based web server
1 of 7 http://tuxgraphics.org/electronics Using the AVR microcontroller based web server Abstract: There are two related articles which describe how to build the AVR web server discussed here: 1. 2. An
USB2.0 <=> I2C V4.4. Konverter Kabel und Box mit Galvanischetrennung
USB2.0 I2C V4.4 Konverter Kabel und Box mit Galvanischetrennung USB 2.0 I2C Konverter Kabel V4.4 (Prod. Nr. #210) USB Modul: Nach USB Spezifikation 2.0 & 1.1 Unterstützt automatisch "handshake
Measuring Resistance Using Digital I/O
Measuring Resistance Using Digital I/O Using a Microcontroller for Measuring Resistance Without using an ADC. Copyright 2011 John Main http://www.best-microcontroller-projects.com Page 1 of 10 Table of
KTA-223 Arduino Compatible Relay Controller
8 Relay Outputs 5A 250VAC 4 Opto-Isolated Inputs 5-30VDC 3 Analog Inputs (10 bit) Connections via Pluggable Screw Terminals 0-5V or 0-20mA Analog Inputs, Jumper Selectable 5A Relay Switching Power Indicator
Definitions and Documents
C Compiler Real-Time OS Simulator Training Evaluation Boards Using and Programming the I 2 C BUS Application Note 153 June 8, 2000, Munich, Germany by Keil Support, Keil Elektronik GmbH [email protected]
Adafruit MCP9808 Precision I2C Temperature Sensor Guide
Adafruit MCP9808 Precision I2C Temperature Sensor Guide Created by lady ada Last updated on 2014-04-22 03:01:18 PM EDT Guide Contents Guide Contents Overview Pinouts Power Pins I2C Data Pins Optional Pins
- 35mA Standby, 60-100mA Speaking. - 30 pre-defined phrases with up to 1925 total characters.
Contents: 1) SPE030 speech synthesizer module 2) Programming adapter kit (pcb, 2 connectors, battery clip) Also required (for programming) : 4.5V battery pack AXE026 PICAXE download cable Specification:
Serial Communications
April 2014 7 Serial Communications Objectives - To be familiar with the USART (RS-232) protocol. - To be able to transfer data from PIC-PC, PC-PIC and PIC-PIC. - To test serial communications with virtual
Designing VM2 Application Boards
Designing VM2 Application Boards This document lists some things to consider when designing a custom application board for the VM2 embedded controller. It is intended to complement the VM2 Datasheet. A
Computer Automation Techniques. Arthur Carroll
Computer Automation Techniques Arthur Carroll 1 Three Types of Computers Micro-Controller Single Board Computer Desktop Computer 2 The Micro-Controller Small inexpensive DIP or surface mount chips Roughly
Accurate Measurement of the Mains Electricity Frequency
Accurate Measurement of the Mains Electricity Frequency Dogan Ibrahim Near East University, Faculty of Engineering, Lefkosa, TRNC [email protected] Abstract The frequency of the mains electricity supply
AN601 I2C 2.8 Communication Protocol. SM130 SM130 - Mini APPLICATION NOTE
AN601 I2C 2.8 Communication Protocol SM130 SM130 - Mini APPLICATION NOTE 2 1. INTRODUCTION This application note explains I2C communication protocol with SM130 or SM130-Mini Mifare module based on the
Antenna Rotator System
Antenna Rotator System RCI-USB Reference Manual September/2011 Rev 1.3c Introduction Thank you for purchasing the ARS RCI-USB Interface. Presently, the ARS System provides the most powerful highest performance
ARDUINO SEVERINO SERIAL SINGLE SIDED VERSION 3 S3v3 (REVISION 2) USER MANUAL
ARDUINO SEVERINO SERIAL SINGLE SIDED VERSION 3 S3v3 (REVISION 2) USER MANUAL X1: DE-9 serial connector Used to connect computer (or other devices) using RS-232 standard. Needs a serial cable, with at least
Surveillance System Using Wireless Sensor Networks
Surveillance System Using Wireless Sensor Networks Dan Nguyen, Leo Chang Computer Engineering, Santa Clara University Santa Clara, California, USA [email protected] [email protected] Abstract The
RPLIDAR. Low Cost 360 degree 2D Laser Scanner (LIDAR) System Development Kit User Manual. 2014-2 Rev.1
RPLIDAR Low Cost 360 degree 2D Laser Scanner (LIDAR) Development Kit User Manual 2014-2 Rev.1 Team Contents: 1. OVERVIEW... 2 ITEMS IN DEVELOPMENT KIT... 2 RPLIDAR... 2 USB ADAPTER... 3 2. CONNECTION AND
EvB 5.1 v5 User s Guide
EvB 5.1 v5 User s Guide Page 1 Contents Introduction... 4 The EvB 5.1 v5 kit... 5 Power supply...6 Programmer s connector...7 USB Port... 8 RS485 Port...9 LED's...10 Pushbuttons... 11 Potentiometers and
AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE
Atmel AVR 8-bit Microcontroller AVR151: Setup and Use of the SPI APPLICATION NOTE Introduction This application note describes how to set up and use the on-chip Serial Peripheral Interface (SPI) of the
[F/T] [5] [KHz] [AMP] [3] [V] 4 ) To set DC offset to -2.5V press the following keys [OFS] [+/-] [2] [.] [5] [V]
FG085 minidds Function Generator Manual of Operation Applicable Models: 08501, 08501K, 08502K, 08503, 08503K Applicable Firmware Version: 1 ) 113-08501-100 or later (for U5) 2 ) 113-08502-030 or later
Atmel Norway 2005. XMEGA Introduction
Atmel Norway 005 XMEGA Introduction XMEGA XMEGA targets Leadership on Peripheral Performance Leadership in Low Power Consumption Extending AVR market reach XMEGA AVR family 44-100 pin packages 16K 51K
Wireless Temperature
Wireless Temperature connected freedom and Humidity Sensor Using TELRAN Application note TZ1053AN-06 Oct 2011 Abstract Dr. C. Uche This application note describes the complete system design (hardware and
Arduino ADK Back. For information on using the board with the Android OS, see Google's ADK documentation.
Arduino ADK Arduino ADK R3 Front Arduino ADK R3 Back Arduino ADK Front Arduino ADK Back Overview The Arduino ADK is a microcontroller board based on the ATmega2560 (datasheet). It has a USB host interface
ET-BASE AVR ATmega64/128
ET-BASE AVR ATmega64/128 ET-BASE AVR ATmega64/128 which is a Board Microcontroller AVR family from ATMEL uses MCU No.ATmega64 and ATmega128 64PIN. Board ET-BASE AVR ATmega64/128 uses MCU s resources on
Review of. 4x IOcards (PCBs) Manufactured by Opencockpits
Review of 4x IOcards (PCBs) Manufactured by Opencockpits Intro We all know flight simulation hardware as yokes, pedals, throttle quadrant, various complete P&P modules etc. which certainly helps in creating
CHAPTER 11: Flip Flops
CHAPTER 11: Flip Flops In this chapter, you will be building the part of the circuit that controls the command sequencing. The required circuit must operate the counter and the memory chip. When the teach
DS1721 2-Wire Digital Thermometer and Thermostat
www.dalsemi.com FEATURES Temperature measurements require no external components with ±1 C accuracy Measures temperatures from -55 C to +125 C; Fahrenheit equivalent is -67 F to +257 F Temperature resolution
DS1621 Digital Thermometer and Thermostat
www.maxim-ic.com FEATURES Temperature measurements require no external components Measures temperatures from -55 C to +125 C in 0.5 C increments. Fahrenheit equivalent is -67 F to 257 F in 0.9 F increments
AVR Butterfly Training. Atmel Norway, AVR Applications Group
AVR Butterfly Training Atmel Norway, AVR Applications Group 1 Table of Contents INTRODUCTION...3 GETTING STARTED...4 REQUIRED SOFTWARE AND HARDWARE...4 SETTING UP THE HARDWARE...4 SETTING UP THE SOFTWARE...5
An Introduction to MPLAB Integrated Development Environment
An Introduction to MPLAB Integrated Development Environment 2004 Microchip Technology Incorporated An introduction to MPLAB Integrated Development Environment Slide 1 This seminar is an introduction to
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs
Develop a Dallas 1-Wire Master Using the Z8F1680 Series of MCUs AN033101-0412 Abstract This describes how to interface the Dallas 1-Wire bus with Zilog s Z8F1680 Series of MCUs as master devices. The Z8F0880,
DATA LOGGER AND REMOTE MONITORING SYSTEM FOR MULTIPLE PARAMETER MEASUREMENT APPLICATIONS. G.S. Nhivekar, R.R.Mudholker
e -Journal of Science & Technology (e-jst) e-περιοδικό Επιστήμης & Τεχνολογίας 55 DATA LOGGER AND REMOTE MONITORING SYSTEM FOR MULTIPLE PARAMETER MEASUREMENT APPLICATIONS G.S. Nhivekar, R.R.Mudholker Department
DS1621 Digital Thermometer and Thermostat
Digital Thermometer and Thermostat www.dalsemi.com FEATURES Temperature measurements require no external components Measures temperatures from 55 C to +125 C in 0.5 C increments. Fahrenheit equivalent
AXE033 SERIAL/I2C LCD
AXE033 SERIAL/I2C LCD The serial LCD and clock module allows microcontroller systems (e.g. PICAXE) to visually output user instructions or readings, without the need for a computer. This is especially
How to design and implement firmware for embedded systems
How to design and implement firmware for embedded systems Last changes: 17.06.2010 Author: Rico Möckel The very beginning: What should I avoid when implementing firmware for embedded systems? Writing code
Introducing AVR Dragon
Introducing AVR Dragon ' Front Side Back Side With the AVR Dragon, Atmel has set a new standard for low cost development tools. AVR Dragon supports all programming modes for the Atmel AVR device family.
E-Blocks Easy Internet Bundle
Page 1 Cover Page Page 2 Flowcode Installing Flowcode Instruction for installing Flowcode can be found inside the installation booklet located inside the Flowcode DVD case. Before starting with the course
DS1307ZN. 64 x 8 Serial Real-Time Clock
DS137 64 x 8 Serial Real-Time Clock www.maxim-ic.com FEATURES Real-time clock (RTC) counts seconds, minutes, hours, date of the month, month, day of the week, and year with leap-year compensation valid
APPLICATION NOTE Atmel AT02509: In House Unit with Bluetooth Low Energy Module Hardware User Guide 8-bit Atmel Microcontroller Features Description
APPLICATION NOTE Atmel AT259: In House Unit with Bluetooth Low Energy Module Hardware User Guide Features 8-bit Atmel Microcontroller Low power consumption Interface with BLE with UART Bi-direction wake
HDMM01 V1.0. Dual-axis Magnetic Sensor Module With I 2 C Interface FEATURES. Signal Path X
Dual-axis Magnetic Sensor Module With I 2 C Interface FEATURES Low power consumption: typically 0.4mA@3V with 50 measurements per second Power up/down function available through I 2 C interface SET/RESET
MXL5007T TUNER RADIO
MXL5007T TUNER RADIO MxL5007T is a tuner IC designed mostly for digital signals (DVB-T, ATSC), but it can be used for analog reception too. It has a programmable IF output and it can receive anything from
RS-232 Communications Using BobCAD-CAM. RS-232 Introduction
RS-232 Introduction Rs-232 is a method used for transferring programs to and from the CNC machine controller using a serial cable. BobCAD-CAM includes software for both sending and receiving and running
Real Time Clock USB Evaluation Board V3.0
Real Time Clock USB Evaluation Board V.0 Application Note February 9, 008 RTC EVB Intersil RTC Devices Supported Introduction This evaluation board provides a platform for testing Intersil Real Time Clock
The Programming Interface
: In-System Programming Features Program any AVR MCU In-System Reprogram both data Flash and parameter EEPROM memories Eliminate sockets Simple -wire SPI programming interface Introduction In-System programming
AVR311: Using the TWI Module as I2C Slave. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR311: Using the TWI Module as I2C Slave APPLICATION NOTE Introduction The Two-wire Serial Interface (TWI) is compatible with Philips I 2 C protocol. The bus allows simple,
7 OUT1 8 OUT2 9 OUT3 10 OUT4 11 OUT5 12 OUT6 13 OUT7 14 OUT8 15 OUT9 16 OUT10 17 OUT11 18 OUT12 19 OUT13 20 OUT14 21 OUT15 22 OUT16 OUT17 23 OUT18
18 CHANNELS LED DRIVER GENERAL DESCRIPTION IS31FL3218 is comprised of 18 constant current channels each with independent PWM control, designed for driving LEDs. The output current of each channel can be
ADC-20/ADC-24 Terminal Board. User Guide DO117-5
ADC-20/ADC-24 Terminal Board User Guide DO117-5 Issues: 1) 8.11.05 Created by JB. 2) 13.12.05 p10: added 0V connection to thermocouple schematic. 3) 22.3.06 p11: removed C1. 4) 20.8.07 New logo. 5) 29.9.08
Programming PIC Microcontrollers in PicBasic Pro Lesson 1 Cornerstone Electronics Technology and Robotics II
Programming PIC Microcontrollers in PicBasic Pro Lesson 1 Cornerstone Electronics Technology and Robotics II Administration: o Prayer PicBasic Pro Programs Used in This Lesson: o General PicBasic Pro Program
Conversion Between Analog and Digital Signals
ELET 3156 DL - Laboratory #6 Conversion Between Analog and Digital Signals There is no pre-lab work required for this experiment. However, be sure to read through the assignment completely prior to starting
AVR315: Using the TWI Module as I2C Master. Introduction. Features. AVR 8-bit Microcontrollers APPLICATION NOTE
AVR 8-bit Microcontrollers AVR315: Using the TWI Module as I2C Master APPLICATION NOTE Introduction The Two-wire Serial Interface (TWI) is compatible with Philips I 2 C protocol. The bus allows simple,
UniPi technical documentation REV 1.1
technical documentation REV 1.1 Contents Overview... 2 Description... 3 GPIO port map... 4 Power Requirements... 5 Connecting Raspberry Pi to UniPi... 5 Building blocks... 5 Relays... 5 Digital Inputs...
1. SAFETY INFORMATION
RS-232 Sound Level Meter 72-860A INSTRUCTION MANUAL www.tenma.com 1. SAFETY INFORMATION Read the following safety information carefully before attempting to operate or service the meter. Use the meter
2.0 Command and Data Handling Subsystem
2.0 Command and Data Handling Subsystem The Command and Data Handling Subsystem is the brain of the whole autonomous CubeSat. The C&DH system consists of an Onboard Computer, OBC, which controls the operation
TEECES DOME LIGHTING SYSTEMS
This lighting system was designed by John V (Teeces) to be a simple, customizable, expandable and affordable solution for dome lighting. An Arduino micro-controller is used to tell LED driver chips which
AN2680 Application note
Application note Fan speed controller based on STDS75 or STLM75 digital temperature sensor and ST72651AR6 MCU Introduction This application note describes the method of defining the system for regulating
IR Communication a learn.sparkfun.com tutorial
IR Communication a learn.sparkfun.com tutorial Available online at: http://sfe.io/t33 Contents Getting Started IR Communication Basics Hardware Setup Receiving IR Example Transmitting IR Example Resources
PolyBot Board. User's Guide V1.11 9/20/08
PolyBot Board User's Guide V1.11 9/20/08 PolyBot Board v1.1 16 pin LCD connector 4-pin SPI port (can be used as digital I/O) 10 Analog inputs +5V GND GND JP_PWR 3-pin logic power jumper (short top 2 pins
MFRD52x. Mifare Contactless Smart Card Reader Reference Design. Document information
Rev. 2.1 17. April 2007 Preliminary Data Sheet Document information Info Keywords Content MFRC522, MFRC523, MFRC52x, MFRD522, MFRD523, Mifare Contactless Smart Card Reader Reference Design, Mifare Reader
Microcontrollers and Sensors. Scott Gilliland - zeroping@gmail
Microcontrollers and Sensors Scott Gilliland - zeroping@gmail Microcontrollers Think tiny computer on a chip 8 to 128 pins Runs on 3.3 to 5 Volts 8 to 20 Mhz Uses µw to mw of power ~ 4 kilobytes of flash
A+ Guide to Managing and Maintaining Your PC, 7e. Chapter 1 Introducing Hardware
A+ Guide to Managing and Maintaining Your PC, 7e Chapter 1 Introducing Hardware Objectives Learn that a computer requires both hardware and software to work Learn about the many different hardware components
Microcontroller to Sensor Interfacing Techniques
to Sensor Interfacing Techniques Document Revision: 1.01 Date: 3rd February, 2006 16301 Blue Ridge Road, Missouri City, Texas 77489 Telephone: 1-713-283-9970 Fax: 1-281-416-2806 E-mail: [email protected]
SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.
SKP16C62P Tutorial 1 Software Development Process using HEW Renesas Technology America Inc. 1 Overview The following tutorial is a brief introduction on how to develop and debug programs using HEW (Highperformance
Advanced Data Capture and Control Systems
Advanced Data Capture and Control Systems Tronisoft Limited Email: [email protected] Web: www.tronisoft.com RS232 To 3.3V TTL User Guide RS232 to 3.3V TTL Signal Converter Modules P/N: 9651 Document
Data Sheet. Adaptive Design ltd. Arduino Dual L6470 Stepper Motor Shield V1.0. 20 th November 2012. L6470 Stepper Motor Shield
Arduino Dual L6470 Stepper Motor Shield Data Sheet Adaptive Design ltd V1.0 20 th November 2012 Adaptive Design ltd. Page 1 General Description The Arduino stepper motor shield is based on L6470 microstepping
International Journal of Electronics and Computer Science Engineering 1588
International Journal of Electronics and Computer Science Engineering 1588 Available Online at www.ijecse.org ISSN- 2277-1956 Design and Development of Low Cost PC Based Real Time Temperature and Humidity
1. Learn about the 555 timer integrated circuit and applications 2. Apply the 555 timer to build an infrared (IR) transmitter and receiver
Electronics Exercise 2: The 555 Timer and its Applications Mechatronics Instructional Laboratory Woodruff School of Mechanical Engineering Georgia Institute of Technology Lab Director: I. Charles Ume,
Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester
Leonardo Journal of Sciences ISSN 1583-0233 Issue 20, January-June 2012 p. 31-36 Microcontroller Based Low Cost Portable PC Mouse and Keyboard Tester Ganesh Sunil NHIVEKAR *, and Ravidra Ramchandra MUDHOLKAR
Palaparthi.Jagadeesh Chand. Associate Professor in ECE Department, Nimra Institute of Science & Technology, Vijayawada, A.P.
Patient Monitoring Using Embedded Palaparthi.Jagadeesh Chand Associate Professor in ECE Department, Nimra Institute of Science & Technology, Vijayawada, A.P Abstract The aim of this project is to inform
User Manual. AS-Interface Programmer
AS-Interface Programmer Notice: RESTRICTIONS THE ZMD AS-INTERFACE PROGRAMMER HARDWARE AND ZMD AS-INTERFACE PROGRAMMER SOFTWARE IS DESIGNED FOR IC EVALUATION, LABORATORY SETUP AND MODULE DEVELOPMENT ONLY.
TSL2561 Luminosity Sensor
TSL2561 Luminosity Sensor Created by lady ada Last updated on 2015-06-12 12:10:28 PM EDT Guide Contents Guide Contents Overview Wiring the TSL2561 Sensor Using the TSL2561 Sensor Downloads Buy a TSL2561
K128. USB PICmicro Programmer. DIY Electronics (HK) Ltd PO Box 88458, Sham Shui Po, Hong Kong. http://www.kitsrus.com mailto: peter@kitsrus.
K128 USB PICmicro Programmer DIY Electronics (HK) Ltd PO Box 88458, Sham Shui Po, Hong Kong http://www.kitsrus.com mailto: [email protected] Last Modified March 31 2003 Board Construction The board is
Elettronica dei Sistemi Digitali Costantino Giaconia SERIAL I/O COMMON PROTOCOLS
SERIAL I/O COMMON PROTOCOLS RS-232 Fundamentals What is RS-232 RS-232 is a popular communications interface for connecting modems and data acquisition devices (i.e. GPS receivers, electronic balances,
GTS-4E Hardware User Manual. Version: V1.1.0 Date: 2013-12-04
GTS-4E Hardware User Manual Version: V1.1.0 Date: 2013-12-04 Confidential Material This document contains information highly confidential to Fibocom Wireless Inc. (Fibocom). Fibocom offers this information
PLL frequency synthesizer
ANALOG & TELECOMMUNICATION ELECTRONICS LABORATORY EXERCISE 4 Lab 4: PLL frequency synthesizer 1.1 Goal The goals of this lab exercise are: - Verify the behavior of a and of a complete PLL - Find capture
AUTOMATIC NIGHT LAMP WITH MORNING ALARM USING MICROPROCESSOR
AUTOMATIC NIGHT LAMP WITH MORNING ALARM USING MICROPROCESSOR INTRODUCTION This Project "Automatic Night Lamp with Morning Alarm" was developed using Microprocessor. It is the Heart of the system. The sensors
Fingerprint Based Biometric Attendance System
Fingerprint Based Biometric Attendance System Team Members Vaibhav Shukla Ali Kazmi Amit Waghmare Ravi Ranka Email Id [email protected] [email protected] Contact Numbers 8097031667 9167689265
Ocean Controls RC Servo Motor Controller
Ocean Controls RC Servo Motor Controller RC Servo Motors: RC Servo motors are used in radio-controlled model cars and planes, robotics, special effects, test equipment and industrial automation. At the
FM75 Low-Voltage Two-Wire Digital Temperature Sensor with Thermal Alarm
Low-Voltage Two-Wire Digital Temperature Sensor with Thermal Alarm Features User Configurable to 9, 10, 11 or 12-bit Resolution Precision Calibrated to ±1 C, 0 C to 100 C Typical Temperature Range: -40
LCD I 2 C/Serial RX Backpack. Data Sheet. LCD to I2C/Serial RX Backpack I2C or Serial RX communication with Standard 16 Pin LCD modules
LCD I 2 C/Serial RX Backpack Data Sheet LCD to I2C/Serial RX Backpack I2C or Serial RX communication with Standard 16 Pin LCD modules Version 203 Sep 2013 Contents Contents 2 Introduction3 Voltage Levels3
USING I2C WITH PICAXE
USING I2C WITH PICAXE Contents: This article provides an introduction into how to use i2c parts with the PICAXE system. This article: 1) Describes the i2c bus 2) Explains how the i2c bus is used with the
MicroMag3 3-Axis Magnetic Sensor Module
1008121 R01 April 2005 MicroMag3 3-Axis Magnetic Sensor Module General Description The MicroMag3 is an integrated 3-axis magnetic field sensing module designed to aid in evaluation and prototyping of PNI
Joule Thief 3.0 Kit. June 2012, Rev 1 1 http://www.easternvoltageresearch.com Joule Thief 3.0
Kit Instruction Manual Eastern Voltage Research, LLC June 2012, Rev 1 1 http://www.easternvoltageresearch.com HIGH BRIGHTNESS LED THIS KIT USES A 1W CREE, HIGH BRIGHTNESS LED. DO NOT STARE AT THIS (OR
NHD-0420D3Z-FL-GBW-V3
NHD-0420D3Z-FL-GBW-V3 Serial Liquid Crystal Display Module NHD- Newhaven Display 0420-4 Lines x 20 Characters D3Z- Model F- Transflective L- Yellow/Green LED Backlight G- STN-Gray B- 6:00 Optimal View
Lab Experiment 1: The LPC 2148 Education Board
Lab Experiment 1: The LPC 2148 Education Board 1 Introduction The aim of this course ECE 425L is to help you understand and utilize the functionalities of ARM7TDMI LPC2148 microcontroller. To do that,
AUTOMATIC EGG INCUBATOR
ATMEL AVR Design Contest 2006 Project Number: AT2951 Project Title: Automatic Egg Incubator AVR Device: ATMEGA32 Abstract AUTOMATIC EGG INCUBATOR There are prominent needs for egg incubators around the
I2C PRESSURE MONITORING THROUGH USB PROTOCOL.
I2C PRESSURE MONITORING THROUGH USB PROTOCOL. Product Details: To eradicate human error while taking readings such as upper precision or lower precision Embedded with JAVA Application: Technology Used:
PCAN-MicroMod Evaluation Test and Development Environment for the PCAN-MicroMod. User Manual. Document version 2.0.1 (2013-08-06)
PCAN-MicroMod Evaluation Test and Development Environment for the PCAN-MicroMod User Manual Document version.0. (0-0-0) Products taken into account Product Name Part number Model PCAN-MicroMod Evaluation
RS232C < - > RS485 CONVERTER S MANUAL. Model: LD15U. Phone: 91-79-4002 4896 / 97 / 98 (M) 0-98253-50221 www.interfaceproducts.info
RS232C < - > RS485 CONVERTER S MANUAL Model: LD15U INTRODUCTION Milestone s model LD-15U is a RS232 to RS 485 converter is designed for highspeed data transmission between computer system and or peripherals
AVR353: Voltage Reference Calibration and Voltage ADC Usage. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR353: Voltage Reference Calibration and Voltage ADC Usage Features Voltage reference calibration. - 1.100V +/-1mV (typical) and < 90ppm/ C drift from 10 C to +70 C. Interrupt controlled voltage ADC sampling.
