- 商品說明
商品說明
愛特梅爾公司(Atmel Corporation) 宣布其低功耗的ATtiny 10/20/40微控制器(MCU) 系列,針對按鍵、滑塊和滑輪等觸控感應應用予以優化。這些器件包括了AVR MCU 及其專利的低功耗picoPower技術,是對成本敏感的工業和消費電子市場上多種應用,如汽車控制板、LCD電視和顯示器、筆記本電腦、手機等的理想選擇。
ATtiny MCU系列介紹
愛特梅爾ATtiny 新型單片機集成有愛特梅爾的AVR 微控制器,以及包括1KB至4KB 的閃存,帶有32 KB至256 KB 的SRAM。此外,這些器件支持SPI 和TWI (具備I2C-兼容性) 通信,提供最高靈活性和1.8V至5.5V的工作電壓。ATtinyAVR使用愛特梅爾專利的picoPower技術,耗電極低。通過軟件控制系統時鐘頻率,取得系統性能與耗電之間的最佳平衡,同時也得到了廣泛應用。
https://github.com/sparkfun/LilyTiny_LilyTwinkle
Arduino 範例碼
/******************************************************************************
LilyTiny (ATtiny85, internal 8 MHz clock)
Emily Lovell
Controls the behavior of up to four LEDs, depending on pin:
Pin 0: fades in and out
Pin 1: heartbeat
Pin 2: blinks on and off
Pin 3: twinkles randomly
******************************************************************************/
// Constant definitions
#define maxBrightness 255.0
#define maxTimeOn 9999
#define blinkTime 125
// Variables and constants for fading pin. Needs to be a pin with PWM hardware
// available; on the Tiny85 that's pin 0 and pin 1 only.
#define fadePin 0 // Redefine the pin name to something
// application specific.
int fadeDirection = 1; // 1 is brighter, -1 is dimmer
int fadeStep = 1;
int fadeBrightness = 1;
// Variables and constants for fading pin. Needs to be a hardware PWM pin; on
// Tiny85 that's pin 0 and pin 1 only.
#define HEARTPIN 1 // Redefine the pin name to something
// application specific.
int heartStage = 0;
float heartBrightness = 0;
float heartCounter = 0;
// variables for blink pin (pin 2)
int blinkPin = 2;
int blinkDelay = blinkTime;
int blinkState = false;
// variables for twinkle pin (pin 3)
int twinklePin = 3;
int timeOn = 0;
float currentBrightness = 0;
int targetBrightness = 0;
float timeToBright = 0;
float stepToBright = 0;
void setup()
{
pinMode(twinklePin, OUTPUT);
startOver();
pinMode(blinkPin, OUTPUT);
}
void loop()
{
// calculate brightness for twinkle pin (determined
// by how much time the LED is on vs. off)
timeOn = calcTimeOn(currentBrightness);
digitalWrite(twinklePin, HIGH);
delayMicroseconds(timeOn + 1);
digitalWrite(twinklePin, LOW);
delayMicroseconds(maxTimeOn - timeOn);
// recalculate brightness for twinkle pin
currentBrightness += stepToBright;
timeToBright--;
if(timeToBright == 0)
startOver();
// calculate brightness for heartbeat pin (by cycling
// through phases of pulse pattern)
heartCounter++;
if (heartCounter > 144) {
heartStage = (heartStage + 1) % 4;
heartCounter = 0;
}
else {
switch(heartStage) {
case 0:
analogWrite(HEARTPIN, heartBrightness);
heartCounter += 144/12.0;
heartBrightness += 255/12.0;
if (heartBrightness > 255)
heartBrightness = 255;
break;
case 1:
analogWrite(HEARTPIN, heartBrightness);
heartCounter += 144/24.0;
heartBrightness -= 255/24.0;
if (heartBrightness < 0)
heartBrightness = 0;
break;
case 2:
analogWrite(HEARTPIN, heartBrightness);
heartCounter += 144/12.0;
heartBrightness += 255/12.0;
if (heartBrightness > 255)
heartBrightness = 255;
break;
case 3:
analogWrite(HEARTPIN, heartBrightness);
heartCounter += 144/72.0;
heartBrightness -= 255/72.0;
if (heartBrightness < 0)
heartBrightness = 0;
break;
}
}
// drive blink pin high or low, depending on how much time has passed
blinkDelay--;
if (blinkDelay == 0) {
blinkDelay = blinkTime;
blinkState = !blinkState;
digitalWrite(blinkPin, blinkState);
}
// increase/decrease brightness of fade pin in steady incremental steps
analogWrite(fadePin, fadeBrightness);
fadeBrightness += fadeStep * fadeDirection;
if (fadeBrightness >= 255) {
fadeBrightness = 255;
fadeDirection = -1;
}
if (fadeBrightness <= 0) {
fadeBrightness = 0;
fadeDirection = 1;
}
}
// calculate ratio of time LED is on/off to acheive particular brightness
int calcTimeOn(int desiredBrightness) {
return desiredBrightness / maxBrightness * maxTimeOn;
}
// restart a new twinkle
void startOver(){
if (random(0, 1) == 1)
targetBrightness = currentBrightness + random(100, 200);
else
targetBrightness = currentBrightness - random(100, 200);
if (targetBrightness < 0)
targetBrightness = maxBrightness + targetBrightness;
targetBrightness %= (int)maxBrightness;
timeToBright = random(10, 30);
stepToBright = (targetBrightness - currentBrightness) / timeToBright;
}
相關商品
-
Pro micro 5v/16MHz Atmega32U4 相容 Leonardo 附傳輸線
0 滿分 5 分Pro micro和Leonardo開發板都是使用Atmega32u4來實現USB通信及控制。這種創新設計也大大地降低了成本,Atmega32u4除支援USB外還能讓開發板模擬成滑鼠或鍵盤來直接控制電腦。
NT$267NT$160 未稅 -
NANO V3.0 Atmega328p 副廠 相容Arduino CH340改進版 附傳輸線
0 滿分 5 分Nano 是 Uno的 微型版本。和Uno一樣,核心為 Atmel ATmega328 微處理器,具有14組數位輸出/入腳位,以及8組類比腳位,可以用來控制周邊、監測感應器數值,並透過USB和運行Windows/Mac OSX/Linux的個人電腦連接;甚至能夠透過模擬方式作為HID(鍵盤、滑鼠或其他周邊)與電腦互動。
超迷你的Nano,可以直接插在麵包板,或是您自定的電路板上,應用更加方便,甚至加速您的產品原型開發 。注意:Nano主板若無法燒錄請在工具選單裡的處理器設定為ATmega328P(Old Bootloader)即可
NT$200NT$140 未稅 -
Motor Pack 舵機工具包 for Arduino
0 滿分 5 分NT$667NT$560 未稅 -
ARDUINO MKR NB 1500 物聯網開發板 Arduino美國原廠
0 滿分 5 分 -
原廠義大利製 Arduino MKR WIFI 1010 原MKR1000升級版
0 滿分 5 分Arduino MKR WIFI 1010 是MKR 1000 WIFI的重大改進。它配備了由U-BLOX製造的ESP32模組。該板旨在通過ESP32模塊的靈活性和低功耗來加速和簡化基於WiFi的物聯網應用的原型設計。
- SAMD21 Cortex-M0 + 32位低功耗ARM MCU;
- U-BLOX NINA-W10系列低功耗2.4GHzIEEE®802.11b / g / n Wi-Fi;
- ECC508加密認證。
NT$1,714NT$1,500 未稅 -
Lilypad Arduino 開發板 Mega328A-PU 16M 穿戴裝置設計專用
0 滿分 5 分Lilypad Arduino 開發板 Mega328A-PU 16M 穿帶裝置設計專用
LilyPad Arduino是一塊基與Arduino開放原始代碼的Simple i/o平台,並且具有使用類似java,C語言的開發環境。讓您可以快速使用Arduino語言與Flash或Processing…等軟件,作出互動作品。Arduino可以使用開發完成的電子元件例如Switch或Sensors或其他控制器、LED、步進電機或其他輸出裝置。Arduino也可以獨立運作成為一個可以跟軟件溝通的平台,例如說:flash processing Max/MSP VVVV 或其他互動軟件…,Arduino開發IDE界面基於開放原始碼原則,可以讓您免費下載使用開發出更多令人驚奇的互動作品。
NT$171NT$152 未稅 -
原廠義大利製 Arduino UNO REV3 UNO R3 開發板 含底殼 附1.3米長傳輸線
0 滿分 5 分義大利原裝的 Arduino UNO REV3, USB接口晶片由MEGA8U2升級為MEGA16U2,更改了接口設計,增加了 SDA and SCL 接口。Arduino 是一塊基與開放原始代碼的Simple i/o平台,具有使用類似java,C語言的開發環境。可以快速使用Arduino語言與Flash或Processing等。
-
原廠義大利製 Arduino ETHERNET SHIELD 2 乙太網路擴展板 2代
0 滿分 5 分義大利原廠 Arduino 乙太網路擴展板 2代 不含POE模組
Arduino Ethernet Shield 2 connects your Arduino board to the internet.
-
副廠 NANO V3.0 FT232RL單片機 相容Arduino 附傳輸線
0 滿分 5 分在Arduino IDE上傳程式開發板處理器需設定為ATmega328p(Old Bootloader)
-
Seeeduino V4.2 開發板 整合UNO R3+Grove接口
0 滿分 5 分Seeeduino V4.2是一款基於ATmga328P MCU相容於Arduino的主板。可以通過micro-USB電纜對開發板進行編程。三個板載Grove接口可以使您的電路板輕鬆連接到Grove模組。想要做一些很棒的東西,只需要一個Seeeduino v4.2連接一些Grove模組就夠了