Tiny85哒哒哒

今天在盒子里面看见一个小玩意,一看是个开发板.好像是3块钱买的.一直也没有用过,看看怎么玩.看了半天主控发现是atmel家的玩意儿.

在一个项目中,该项目需要在不同位置读取多个传感器数据。这些仅需几个PWM引脚,因此使用多个Arduino Uno既昂贵又不必要。因此,我决定使用ATtiny85微控制器代替Arduino Uno开发板。当您不需要太多的PWM引脚时,ATtiny85是一种廉价而强大的替代产品。由于ATtiny85只是一个微控制器,我们需要Arduino Uno对其进行编程。

引脚图


将Arduino Uno配置为ISP(系统内编程)

要对ATtiny85进行编程,我们需要首先将Arduino Uno设置为ISP模式。将您的Arduino Uno连接到PC。打开Arduino IDE并打开ArduinoISP示例文件(文件->示例-> ArduinoISP)并上传。

向Arduino IDE添加ATtiny85支持

默认情况下,Arduino IDE不支持ATtiny85,因此我们应该在Arduino IDE中添加ATtiny板。打开文件->首选项,并在附加板管理器中的URL中提供以下URL  :

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json 。

额,分辨率感人.所以爱不会消失对吧!

你别高兴....还是不可以用

是他是他就是他

支持的函数

https://github.com/damellis/attiny地址给你放这里了
*/
#ifndef Pins_Arduino_h#define Pins_Arduino_h
#include <avr/pgmspace.h>
// ATMEL ATTINY45 / ARDUINO//// +-\/-+// Ain0 (D 5) PB5 1| |8 Vcc// Ain3 (D 3) PB3 2| |7 PB2 (D 2) Ain1// Ain2 (D 4) PB4 3| |6 PB1 (D 1) pwm1// GND 4| |5 PB0 (D 0) pwm0// +----+
static const uint8_t A0 = 6;static const uint8_t A1 = 7;static const uint8_t A2 = 8;static const uint8_t A3 = 9;
#define digitalPinToPCICR(p) ( ((p) >= 0 && (p) <= 4) ? (&GIMSK) : ((uint8_t *)0) )#define digitalPinToPCICRbit(p) ( PCIE )#define digitalPinToPCMSK(p) ( ((p) <= 4) ? (&PCMSK) : ((uint8_t *)0) )#define digitalPinToPCMSKbit(p) ( (p) )
#define analogPinToChannel(p) ( (p) < 6 ? (p) : (p) - 6 )
#define TCCR1A GTCCR
#ifdef ARDUINO_MAIN
void initVariant(){ GTCCR |= (1 << PWM1B);}
// these arrays map port names (e.g. port B) to the// appropriate addresses for various functions (e.g. reading// and writing) tiny45 only port B const uint16_t PROGMEM port_to_mode_PGM[] = { NOT_A_PORT, NOT_A_PORT, (uint16_t) &DDRB,};
const uint16_t PROGMEM port_to_output_PGM[] = { NOT_A_PORT, NOT_A_PORT, (uint16_t) &PORTB,};
const uint16_t PROGMEM port_to_input_PGM[] = { NOT_A_PIN, NOT_A_PIN, (uint16_t) &PINB,};
const uint8_t PROGMEM digital_pin_to_port_PGM[] = { PB, /* 0 */ PB, PB, PB, PB, PB, // 5 PB, // A0 PB, PB, PB, // A4
};
const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { _BV(0), /* 0, port B */ _BV(1), _BV(2), _BV(3), /* 3 port B */ _BV(4), _BV(5), _BV(5), _BV(2), _BV(4), _BV(3),};
const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { TIMER0A, /* OC0A */ TIMER0B, NOT_ON_TIMER, NOT_ON_TIMER, TIMER1B, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER, NOT_ON_TIMER,};
#endif
#endif

头文件,我研究了一下.应该就是这样写


将ATtiny85与Arduino Uno连接

现在,上述所有事情都准备就绪,我们将开始对attiny85进行编程。使用以下面包板将arduino uno连接到attiny85。

Arduino Uno – ATtiny85

  • 5V – Vcc

  • Gnd – Gnd

  • 针13 –针2

  • 针脚12 –针脚1

  • 针脚11 –针脚0

  • 引脚10 –重置

宝贝儿看图.别瞎鸡儿连


在arduino的RESET和GND之间添加一个10uF电容器。这是为了避免在将程序上传到attiny85时将arduino自动重置。如果使用电解电容器,请确保阳极进入uno的GND。

将程序上传到ATtiny85

现在回到Arduino IDE。在工具->董事会下选择ATtiny。然后在工具->处理器下选择ATtiny85。然后在工具->时钟下选择8 MHz(内部)。

选择

选择->ok

引脚排列:所有引脚都可用作数字I / O

引脚0→I2C SDA,PWM(B型LED)

引脚1→PWM(A型LED)

引脚2→I2C SCK,模拟输入

引脚3→模拟输入(当使用USB时也用于USB +)

引脚4→PWM,模拟(也用于USB-当使用USB时)

引脚5→模拟输入

https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip

上面是一个驱动的下载地址

内部,安装一下

这要记住

Digisparks不会创建串行端口。digispark arduino软件通过原始的低速USB协议和HID协议的组合直接与digispark通信,以节省空间并更符合USB规范。串行端口列表-不使用任何端口。只需确保在Programmer菜单中选择了Digispark并且在Board菜单中选择了Digispark(tiny core),就应该启动并运行。使用Digispark Arduino软件时,在串行端口列表中选择什么都没有关系-没有使用。只要确保在Programmer菜单中选择了Digispark,并在Board菜单中选择了Digispark(微型内核),就可以正常运行了。

void setup() { // initialize digital pin 13 as an output. pinMode(0, OUTPUT);}
// the loop function runs over and over again forevervoid loop() { digitalWrite(0, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(0, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second}

c

错误,我们继续研究

这个毛病

这个看起来是个好的趋势

. 修改系统配置以增强供电效果。

① 请按 Win按钮 + R。

② 请在弹出的输入框里面,输入“devmgmt.msc” 。

③ 找到“通用串行总线控制器”,点开后找到“USB Root Hub”。

④ 右键点击“USB Root Hub”,在菜单中选择“属性”。

⑤ 在“电源管理”中,把“允许计算机关闭此设备以节约电源”的选择取消;然后点击“确定”后,重启电脑即可。

⑥ 按“确定”后,重启电脑即可。

如果以上的方法还是不可行,建议再尝试下面的解决方案。

https://sourceforge.net/projects/libusb-win32/

c

用管理员执行一下

这就成功了


这个驱动就折腾到这里,,,,比较难搞.我的Ardunio还是烧不进去

(0)

相关推荐