Tiny85哒哒哒

时间:2022-07-24
本文章向大家介绍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 forever
void 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还是烧不进去