Adafruit’s Trinket platform – based on Atmel’s versatile ATtiny85 microcontroller (MCU) – has been used to power a number of diverse projects in recent months, including an audio player, flickering…
Guide to configure GPIO pins of ATtiny85 as input and how to program them. ATtiny85 GPIO input tutorial also covers registers involved in its programming
Possibly the smallestest ATtiny85 based ‘duino derivative. Recently, Olimex anncounced the Olimexino 85s, claimed to be the “World’s smallest Arduino ever”. Now, that looks like a…
Voronoi Diagram Based PCB Lamp: Hey, what's up you guys. So this is my Voronoi PCB Lamp that contains Voronoi shape elements and is powered by an Attiny85 MCU, 64 WS2812B Mini LEDs are used in this project, and it's completely made out of FR4 PCBs. It's kind of like an RGB Cube Pr…
Dans cet article nous allons découvrir les microcontrôleurs Atmel AVR ATTINY avec notamment le petit ATTINY85. Nous apprendrons comment le...
Tutorial to learn ATtiny85 microcontroller programming using Embedded C language. Guide to use ATtiny85 microcontroller in projects
Robin Scheibler says he has always been interested in Atmel’s popular ATtiny85 microcontroller. Indeed, Scheibler describes the MCU as “minimalist, yet powerful,” making the silic…
Fala Pessoal! Tudo Bom?! 😀 Bom, creio que vocês já sabem, mas para quem está chegando agora (seja muito bem-vindo(a) 😀 ), este espaço é reservado para mostrar pra vocês nossas apresentações, debates, conversas e tudo o mais sobre Eletrônica, Tecnologia, (IoT) Internet das Coisas, Arduino, placas … Continue lendo… →
Arduino Attiny85 Charlieplexing: It's rainning leds... Last week I saw in a shop a curious thing: a small microcontroller like Attiny85 (8 pins) controlling 20 leds with a rain effect!! An impossible thing working with the famous Charlieplexing algorithm.
Karl Lunt’s original sdlocker was built around Atmel’s ATmega328 microcontroller (MCU). Recently, a new variant (or fork) of the project was launched by Nephiel, who decided to power th…
Basics of ATtiny85 microcontroller a tutorial focused on using GPIO pins. ATtiny85 MCu tutorial using Digispark development board and Arduino IDE
Adafruit has debuted an IRKey powered by Atmel’s ATiny85 microcontroller (MCU). Essentially, the IRKey can be used to add a IR remote receiver to any computer, laptop, tablet or device with a…
It's finally time to build my first proper prototype wireless sensor node. The components are as follows: CR2032 3V battery + battery holder ATtiny85 MCU + 8 pin socket TMP36 temperature sensor + 3 pin female header 315MHz RF TX module + 4 pin female header A small amount of tripad board The process of soldering these parts together went quite smoothly. And yes, that is some beer brewing beside me! The results without any parts in place looks like this. And this is what it looks like with all the parts in place. I'm fairly pleased with how neat the soldering turned out. Sadly having built this I found that the RF TX no longer worked reliably and the temperature sensor wasn't reporting accurate readings! This required some software fixes! 1) Fixing the RF TX I have historically used a scheme where I sent three 16 bit values and then combined them at the receiver. However, the Manchester lib now supports sending longer messages so I've retired my pointless message combining code and simply send a single longer message. 2) Getting accurate readings out of the TMP36 The basic method for getting temp readings is as follows. int sensorValue = analogRead(TmpPin); // Constant: 5000 / 1024 float milliVolts = sensorValue * 4.8828125; float tempC = (milliVolts - 500) / 10; return tempC; The crucial change to make when running on an ATtiny85 is to change the constant which adjusts for the reference voltage being used which in my case is certainly not 5V! First, add the following to your setup method. This tells the ATtiny85 to use the internal 1.1V reference voltage in preference to the VCC which will change as our battery runs down. // Select the 1.1V internal ref voltage analogReference(INTERNAL); Secondly, update the temp reading code as follows. int sensorValue = analogRead(TmpPin); // Constant: 1100 / 1024 float milliVolts = sensorValue * 1.07421875; float tempC = (milliVolts - 500) / 10; return tempC; 3) Getting more accurate readings out of the TMP36 The ATtiny85 internal 1.1V reference voltage isn't very accurate so it's worth calibrating the constant you are using. To do this I took a temperature reading from the TMP36 when connected to my ATtiny85 and when connected to an Arduino Uno. I then used the following formula: V_calib = V_base * ((T_ref + 50) / (T_base + 50)) V_base = 1100 T_ref = temp as measured on Arduino Uno T_base = temp as measured on ATtiny85 I ended up with V_calib = 1028 which gave me fairly accurate temp readings. The results? A working wireless sensor node! (I have added a ~20cm antenna wire since the previous pictures) I have tested this node briefly but I won't deploy it until I do some more work. For the wireless sensor node I want to build an enclosure. For the base station I want to build an enclosure and write code to handle storing readings and allowing download over bluetooth. As ever, the Arduino code is available on Github: https://github.com/mchr3k/arduino/tree/master/wsn_arduino https://github.com/mchr3k/arduino/tree/master/wsn_attiny
The project described here is a digital implementation of “book cricket game” which students normally use to play in their childhood time. The heart of the project is 8 bit MCU from AVR family called ATtiny85. ATtiny85 are small and cheap microcontrollers which are convenient for running simple programs with low footprint. The software used for programming the MCU is Ardunio which is a popular open source IDE. The overall design is kept to a least for simplicity and ease to use. The main components used in the circuitry are 16X2 LCD which is used to display the characters in 2 lines with maximum of 16 characters in one line, a serial in parallel out shift register HEF4094, ATtiny85, 2 push buttons and 7805 voltage regulator which regulates the voltage supply to maximum of 5 volts. Shift register HEF4094 is used because normally when LCD is used it requires 7 connections to the pins on the display. But if shift register is used the number of connections to the MCU can be reduced to only 3 wires.
I love AVR ATtinyx5 series microcontrollers. They are cheap, easy to use, they can be programmed just like Arduinos and comparing to their size they offer great features. For example, they can be used as a remote analog to digital converters connected to a master device using an I2C bus. Background: A few years ago I've built a weather station based on Raspberry Pi. It collects various data and displays them on a dedicated web page and Android app. Every few months I try to add a new sensor to it. Last time it was a daylight sensor. Raspberry Pi does not offer ADC inputs and I had a few ATtiny85 on hand tat hand. One to another, a few hours later: a photoresistor based daylight meter sensor connected via the I2C bus. Electric assembly is pretty simple: ATtiny85 directly connected to Raspberry Pi via I2C, photoresistor with 10kOhm pull down connected to ATtiny85 and signal LED. Code driving this rig is also pretty simple: watchdog timer wakes up ATtiny85 every few minutes, measures voltage, filters it and stores in memory. Every time read operation is requested, last filtered ADC value (10 bits as 2 bytes). I2C support is provided by TinyWireS library that configures USI as an I2C slave. /** * This function is executed when there is a request to read sensor * To get data, 2 reads of 8 bits are required * First requests send 8 older bits of 16bit unsigned int * The second request sends 8 lower bytes * Measurement is executed when a request for the first batch of data is requested */ void requestEvent() { TinyWireS.send(i2c_regs[reg_position]); reg_position++; if (reg_position >= reg_size) { reg_position = 0; } } /* * Setup I2C */ TinyWireS.begin(I2C_SLAVE_ADDRESS); TinyWireS.onRequest(requestEvent); //Set I2C read event handler ` Example code to read from device might look like this:
`Wire.requestFrom(0x13, 2); // request 2 bytes from slave device #0x13 int i =0; unsigned int readout = 0; while (Wire.available()) { // slave may send less than requested byte c = Wire.read(); // receive a byte as character if (i == 0) { readout = c; } else { readout = readout << 8; readout = readout + c; } i++; } Serial.print(readout); Full source code is available on GitHub and my Weather Station with almost a year of light level history is available here.
How to Make a Cheap Attiny Arduino Board: Well most of time i get troubled when i need Arduino in some projects where i need few I/O pins Well thanks to Arduino-Tiny platform Arduino program can be burned into the Avr-tiny Series like Attiny 85/45 Arduino-Tiny is an open source set of A…
Step by step on how to program a ATtiny85 microcontroller with Arduino Uno development board.
A Maker known as “bergerab” has created an Atmel-based ultrasonic ruler powered by the popular ATtiny85 microcontroller (MCU). According to the inventor, the recently posted Instructabl…
MCU.cz | Vše o elektronice a programování: StepUp s ATtiny15 -
$10 ATtiny85/45 POV Display!! (works Really Well): Hey guys! This is an Instructable for making your own ATtiny85/45 5 LED POV (Persistence Of Vision) display! This is my second Instructable, also for the Elemental LED contest, so drop a comment and vote it up! The total parts cost for this POV di…
Adafruit’s Trinket platform – based on Atmel’s versatile ATtiny85 microcontroller (MCU) – has been used to power a number of diverse projects in recent months, including an audio player, flickering…
Attiny85 Wireless Weather Sensor: In this article is shown how to build your own wireless weather sensor compatible with Oregon weather station using compact attiny85 micro controller. You can buy spare Oregon sensor THGN123N for about $20 or you can build your own wireless sensor t…
Adafruit’s Mike Barela has designed a temperature and humidity monitor built around the Atmel-powered (ATtiny85) Trinket. As Barela notes, monitoring sensors are a very common feature in curr…
USB NeoPixel Deco Lights (via Digispark / ATtiny85): For this Instructable we need a WS2812 LED strip, also known as NeoPixel, and any MCU that could be programmed via Arduino. I use Digispark, it is a very nice tiny MCU based on ATtiny85. It has a special bootloader called Micronucleus which provides…
Doing more with pin-limited MCUs seems to be a popular challenge, as my post nrf24l01+ control with 3 ATtiny85 pins is by far the most popular on my blog. A couple months ago I had an idea of how to multiplex the MOSI and MISO pins, and got around to working on it over the past couple weeks. The result is that I was able to control a nRF24l01+ module using just two pins on an ATtiny13a. I also simplified my design for multiplexing the SCK and CSN lines so it uses just a resistor and capacitor. Here's the circuit: Starting with the top of the circuit, MOMI represents the AVR pin used for both input and output. The circuit is simply a direct connection to the slave's MOSI (data in) pin, and a resistor to the MISO. Since this is not a standard SPI configuration, I've written some bit-bang SPI code that works with the multiplexing circuit. To read the data, the MOMI pin is simply set to input. Before bringing SCK high, MOMI is set to output and the pin is set high or low according to the current data bit. The 4.7k resistor keeps the slave from shorting out the output from the AVR if the AVR outputs high, or vice-verse. Looking at the SCK/CSN multiplexing part of the circuit, I've removed the diode that was in the original version. The purpose of the diode was to discharge the capacitor during the low portion of the SCK clock cycles, so the voltage on the CSN pin wouldn't move up in accordance with the typical 50% duty cycle of the SPI clock. My bit-bang duplex SPI code is written so the clock duty cycle is less than 25%, keeping CSN from going high while data is being transmitted. The values for C1 and R1 are not critical and are just based on what was within reach when I built the circuit; in fact I'd recommend lower values. 470Ohms * .22uF gives an RC time constant of 103uS, meaning SCK needs to be held low for >103uS for C1 to discharge enough for CSN to go low. Something like a 220Ohm resistor and .1uF capacitor would reduce the delay required for CSN to go low to around 25uS. The R2 is far more important. The first value I tried was 1.5K, and after fixing a couple minor software bugs, it seemed to be working OK. When I looked at the signals on my scope, I saw a problem: The yellow trace shows the voltage level detected on the MOMI pin at the AVR. Each successive high bit was a bit lower voltage, so after more than a few bytes of data, all the bits would likely be read as zero. I suspect this has something to do with the internal capacitance of the output drivers on the nRF module, as well as it's somewhat weak drive strength, documented in the datasheet at table 13. A 4.7K resistor seems to be optimal, though anything from 3.3K to 6.8K should work. Software Here is the AVR code for the time-division duplexed SPI: uint8_t spi_byte(uint8_t dataout) { uint8_t datain, bits = 8; do{ datain <<= 1; if(SPI_PIN & (1<
Step#1 — Download and install Arduino 1.6.4 https://www.arduino.cc/en/Main/OldSoftwareReleases#previous; Step#2 — Open Arduino IDE, File > Preferences and in Additional Board Manager URLs: and…
Don't cannibalize old projects for their brains! Give them immortality with this inexpensive chip – here's how.
Possibly the smallestest ATtiny85 based ‘duino derivative. Recently, Olimex anncounced the Olimexino 85s, claimed to be the “World’s smallest Arduino ever”. Now, that looks like a…
ButtonDuino – which recently made its Indiegogo debut – is an uber-mini (0.73in x 0.718in), USB programmable development platform powered by Atmel’s popular ATtiny85 microcontroll…
Adafruit’s Trinket platform – based on Atmel’s versatile ATtiny85 microcontroller (MCU) – has been used to power a number of diverse projects in recent months, including an audio player, flickering…
Arduino ATtiny85 Programmer Shield on PCB [ATtinyShield]: Arduino projects are very popular but also big and expensive. There are many times that we don’t need so many input or output pins. As a matter of fact, most projects could be accomplished with only 2 or 3 inputs and outputs…
USB NeoPixel Deco Lights (via Digispark / ATtiny85): For this Instructable we need a WS2812 LED strip, also known as NeoPixel, and any MCU that could be programmed via Arduino. I use Digispark, it is a very nice tiny MCU based on ATtiny85. It has a special bootloader called Micronucleus which provides…