ATTINY85 – flash multiple LEDs

Similar to our previous example when we flashed a single LED, in this case we connect 3 LEDs up to Pin 5, 6 and 7 which are PB0,1 and 2. We will then flash 3 LEDs

Here is the schematic for this example

Schematic

attiny85 three LEDs

attiny85 three LEDs

Source

Again this was written in Atmel Studio

 

  1. #include <avr/io.h>
  2. #define F_CPU 1000000UL
  3. #include <util/delay.h>
  4. int main (void)
  5. {
  6. // port B pins 0, 1, 2 as output
  7. DDRB = (1 << PB2) | (1 << PB1) | (1 << PB0);
  8.  
  9. unsigned int i = 0;
  10. while(1)
  11. {
  12. PORTB = i & ( (1 << PB2) | (1 << PB1) | (1 << PB0) );
  13.  
  14. i = (i+1) % 8;
  15.  
  16. _delay_ms( 500 );
  17. }
  18. }

 

 

Links

 

Free shipping 10PCS ATTINY85

Attiny85 – Flash an LED

The hello world of examples this time for an ATTINY85, although this should work with similar chips as well. We will connect the LED to pin 2 (PB3) and simply flash it on and off.

Here is our schematic

Schematic

attiny85 Basic LED

attiny85 Basic LED

 

Code

The code was written in Atmel Studio

 

  1. #include <avr/io.h>
  2. #define F_CPU 1000000UL
  3. #include <util/delay.h>
  4. // Define the I/O port to be used for the LED.
  5. #define LED_PORT PB3
  6.  
  7. int main(void) {
  8.  
  9. // Set the LED port number as output.
  10. DDRB |= (1 << LED_PORT);
  11.  
  12. // Start infinite loop.
  13. while (1)
  14. {
  15.  
  16. // Set the LED bit to "1" - LED will be "on".
  17. PORTB |= (1 << LED_PORT);
  18. // The delay function simply does N-number of "empty" loops.
  19. _delay_ms(200);
  20. // Set the LED bit to "0" - LED will be "off".
  21. PORTB &= ~(1 << LED_PORT);
  22. _delay_ms(400);
  23. }
  24.  
  25. return (0);
  26. }

 

And another way to do the same task

 

  1. #include <avr/io.h>
  2. #define F_CPU 1000000UL
  3. #include <util/delay.h>
  4.  
  5. // Define the I/O port to be used for the LED.
  6. #define LED_PORT PB3
  7.  
  8. int main(void) {
  9.  
  10. // Set the LED port number as output.
  11. DDRB |= (1 << LED_PORT);
  12.  
  13. // Start infinite loop.
  14. while (1)
  15. {
  16.  
  17. // Set the LED bit to "1" - LED will be "on".
  18. PORTB |= (1 << LED_PORT);
  19. // The delay function simply does N-number of "empty" loops.
  20. _delay_ms(200);
  21. // Set the LED bit to "0" - LED will be "off".
  22. PORTB &= ~(1 << LED_PORT);
  23. _delay_ms(400);
  24. }
  25.  
  26. return (0);
  27. }

Links

 

Free shipping 10PCS ATTINY85