clone of Digispark Pro
color | USB | Board | Proccessor | Prog | Mem | MIPS | SPI | I2C | UART | idle PWR |
---|---|---|---|---|---|---|---|---|---|---|
black | Micro | Digispark Pro(Default - 16Mhz) | ATTINY167 | 16KB | 0.5KB | 16 | 2 | 1 | 1 | 0.109W |
Aliexpress: ~3$
ATTINY167
http://digistump.com/products/110
http://digistump.com/wiki/digispark/tutorials/connectingpro
src: http://digispark.s3.amazonaws.com/DigisparkProDiagram2.png
Blink Example
Code Block |
---|
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(1, OUTPUT); //on board LED
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(1, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(1, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
} |
Low Power Blink Example
Code Block |
---|
#include <avr/wdt.h>
#include <avr/sleep.h>
#include <avr/interrupt.h>
#define adc_disable() (ADCSRA &= ~(1<<ADEN)) // disable ADC (before power-off)
#define adc_enable() (ADCSRA |= (1<<ADEN)) // re-enable ADC
void setup()
{
// Power Saving setup
for (byte i = 0; i < 6; i++) {
pinMode(i, INPUT); // Set all ports as INPUT to save energy
digitalWrite (i, LOW); //
}
adc_disable(); // Disable Analog-to-Digital Converter
wdt_reset(); // Watchdog reset
wdt_enable(WDTO_1S); // Watchdog enable Options: 15MS, 30MS, 60MS, 120MS, 250MS, 500MS, 1S, 2S, 4S, 8S
WDTCR |= _BV(WDIE); // Interrupts watchdog enable
sei(); // enable interrupts
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // Sleep Mode: max
}
void loop()
{
pinMode(1, OUTPUT);
digitalWrite(1, HIGH);
sleep_enable();
sleep_cpu();
//Set the LED pins to LOW. This turns it off
pinMode(1, OUTPUT);
digitalWrite(1, LOW);
sleep_enable();
sleep_cpu();
}
ISR (WDT_vect) {
WDTCR |= _BV(WDIE);
} |