存档

‘Arduino’ 分类的存档

在Arduino IDE 1.6里配置ATtiny44/45/84/85

2016年1月5日 没有评论

刚才顺手有看到了支持ATtiny44/45/84/85的Arduino支持,于是顺手再写下来。这个支持来自Damellis’es ATtiny cores,看具体内容前要先修改一下分支,目前有一个ide-1.6.x-boards-manager的分支。

当然直接安装也比较简单,在Arduino IDE的File->Preferences的Additional Boards Manager URL里面填上https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json 这个地址。这时在Tools->Boards->Board Manager的最西面会看到下图的内容:

image

这时,选择最新的版本,然后点击Install按钮就好。然后在Tools->Board里选择ATtiny以后,你就能看到下图菜单的样子:

image

祝各位玩的愉快:-)

分类: Arduino, AVR 标签: , ,

ATtiny13的Core13在Aduino IDE 1.6上的配置

2016年1月4日 没有评论

目前在Arduino IDE里面能搞的最低处理器应该是ATTiny13了,ATtiny有几个选择,但是ATtiny13只有一个Core13选择。

Core13的下载地址:http://sourceforge.net/projects/ard-core13/ 。本文成文的时候,最新版本是022版本,而且这个版本有了一个Arduino IDE 1.6版本的专门包,推荐下载这个。我目前的测试环境是1.6.5,但最新的版本已经是1.6.7了。这是因为我也在玩另一个ATtiny85的小板子,叫DigiSpark,它的程序不兼容1.6.5之后的版本,所以……就不升级了。

Core13在Arduino IDE 1.6上安装很简单,只需把压缩包中的attiny13这个文件夹解压缩到你“<我的文档>\Arduino\hardware”这个目录下就好了。关闭再重新打开Arduino IDE,你就能在Tools->Board菜单里找到Attiny13的选项了。下图里面可以看到我配置好的样子,上面还有DigiSpark的选项。另外还有一个国产atmega328p克隆版LGT8F328D做的Larduino的选项。

image

分类: Arduino, AVR 标签: ,

在Win8.1下驱动USBasp

2015年8月17日 没有评论

手里有一个两个能给8951下载程序的USB ISP。一个插上机器,被直接识别为HID设备,另外一个找不到驱动。使用自带的驱动,windows 8.1提示驱动没有签名。网上查了一下,两种解决方案,一种是去掉Windows 8的强制驱动签名,一种是使用签名的驱动。

如果想使用签名驱动的话,可以下载Zadig。下载运行以后,在1的位置会显示未驱动的设备,我这里显示的USBasp。如果你有多个未驱动的设备,可以从里面选一个。在2的位置,选择libusb-win32。这是因为其自带驱动是libusb0,选择WinUSB可能会给你安装libusb1。然后点击按钮Install WCID Driver。

image

安装好以后,在设备管理器里面看我的USBasp就是这样的。

image

说个题外话,你如果玩过用电视棒玩过SDR#的话,你会发现现在最新版的SDR#自动下载的安装包里也会有这个Zadig。并且也是用他来给电视棒安装SDR#需要的驱动的。

分类: Arduino 标签:

Arduino LCD 1602 Keypad Shield实例代码(带DFROBOT字样的那种)

2015年3月19日 没有评论

买东西的地方给的kuaipan的地址,但是貌似关闭分享功能了。去淘宝找了一下卖类似东东的网店,终于发现一家直接把代码贴上来了。我试验了一下,可用。纯属没地方放,另外给搜索过来的朋友做个参考,整段代码贴上来当做笔记。1602应该是四线模式,几个按键应该是模拟方式,也就是不支持多键同时按下。RST键会直接RESET。

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);

char msgs[5][16] = {"Right Key OK ",
                    "Up Key OK    ",              
                    "Down Key OK  ",
                    "Left Key OK  ",
                    "Select Key OK" };

int adc_key_val[5] ={50, 200, 400, 600, 800 };
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;

void setup() {
  // put your setup code here, to run once:
  lcd.clear();
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print("ADC key testing");
}

void loop() {
  // put your main code here, to run repeatedly:
  adc_key_in = analogRead(0);    // read the value from the sensor
  key = get_key(adc_key_in);  // convert into key press
 
  if (key != oldkey)   // if keypress is detected
   {
    delay(50);  // wait for debounce time
    adc_key_in = analogRead(0);    // read the value from the sensor
    key = get_key(adc_key_in);    // convert into key press
    if (key != oldkey)   
    {  
      lcd.setCursor(0, 1);
      oldkey = key;
      if (key >=0){
           lcd.print(msgs[key]);             
      }
    }
  }
delay(100);
}

// Convert ADC value to key number
int get_key(unsigned int input)
{
    int k;
  
    for (k = 0; k < NUM_KEYS; k++)
    {
      if (input < adc_key_val[k])
{
            return k;
        }
   }
  
    if (k >= NUM_KEYS)k = -1;  // No valid key pressed
    return k;
}

分类: Arduino 标签: