Articles Posted in the " " Category

  • pulseIn()

    pulseIn()

    描述 读取 pin 脚上的脉冲 (高或低电位) 持续时间;举个例子,如果输入值是 HIGH,pulseIn() 会等 pin 脚上的电位变成 HIGH 之后开始计时,等到又变回 LOW 才停止;之后会回传脉冲的持续时间,单位是微秒;假如在指定的时间内没有出现任何脉冲或是脉冲长度太长,则会放弃读取并回传 0。 指定时间的长短是取决于经验的,通常在长时间的脉冲下较容易发生错误,脉冲的测量长度介于 10 毫秒到 3 分钟之间。 语法 pulseIn(pin, value) pulseIn(pin, value, timeout) 参数 pin: 用来读取脉冲的 pin 脚 (int) value: 读取的脉冲型态,HIGH 或 LOW (int) timeout (非必要): 设定一段时间来等待脉冲开始,预设是一秒 (unsigned long) 回传 脉冲的时间长度 (单位是微秒) 。如果在超时前没有读到脉冲的话则是回传 0 (unsigned long)。 范例 语法参考主页面 本页由热血青年 LBU 译自英文版。 The […]


  • shiftIn()

    shiftIn()

    描述 以 byte 为单位来接收资料,一次一个 bit。可以从最高或者最低有效位元开始接收资料;接收每一个 bit 的过程中,时脉 pin 脚会先被拉成高电位,然后从资料 pin 上读取一个 bit,再将时脉 pin 脚拉成低电位。 注意:如果你使用的装置是属于正缘触发的类型,你需要确定时脉 pin 脚在呼叫 shiftOut() 之前是处于低电位的状态,例:可以呼叫 digitalWrite(clockPin, LOW) 将 pin 脚设定为低电位。 这个函式是以软体模拟方式实作的,可以参考 SPI 函式库,它提供了一个高效的硬体实作方式,但只能作用在某些固定的 pin 脚上。 语法 byte incoming = shiftIn(dataPin, clockPin, bitOrder) 参数 dataPin: 要读取 bit 的 pin 脚 (int) clockPin: 要输出时脉的 pin 脚 (int) bitOrder: 读取 bit 的顺序,不是 MSBFIRST 就是 […]


  • shiftOut()

    shiftOut()

    描述 以 byte 为单位将资料送出,一次一个 bit。可以从最高或者最低有效位元开始送出资料;每一个 bit 会被输出到一个资料 pin 脚上,再经过时脉 pin 脚上的高 / 低电位变化边缘让接收端判读该 bit 是否有效。 注意:如果你使用的装置是属于正缘触发的类型,你需要确定时脉 pin 脚在呼叫 shiftOut() 之前是处于低电位的状态,例:可以呼叫 digitalWrite(clockPin, LOW) 将 pin 脚设定为低电位。 这个函式是以软体模拟方式实作的,可以参考 SPI 函式库,它提供了一个高效的硬体实作方式,但只能作用在某些固定的 pin 脚上。 语法 shiftOut(dataPin, clockPin, bitOrder, value) 参数 dataPin: 要输出 bit 的 pin 脚 (int) clockPin: 要输出时脉的 pin 脚 (int) bitOrder: 送出 bit 的顺序,不是 MSBFIRST 就是 LSBFIRST […]


  • noTone()

    noTone()

    描述 停止由 tone() 产生的方波,在没有任何音频产生的时候呼叫此函式是没有作用的。 注意: 如果你想要在多个 pin 脚上拨放不同的音频,在呼叫下一个 tone() 前你需要先呼叫 noTone()。 语法 noTone(pin) 参数 pin: 要停止音频生成的 pin 脚 回传 无回传值 See also - tone() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the […]


  • tone()

    tone()

    描述 在指定的 pin 脚上产生一个指定频率的方波 (工作周期是 50% 的 PWM 信号),可以指定持续时间或者持续直到呼叫 noTone(),在这个指定的 pin 脚上可以接蜂鸣器或者喇叭来发出一段音频。 同一时间只能产生一段音频,如果这段音频已经在别的 pin 脚上拨放则呼叫 tone() 是无效的;如果是在同一个 pin 脚上拨放时,呼叫 tone() 则是设定它的频率。 注意: 如果你想要在多个 pin 脚上拨放不同的音频,在呼叫下一次 tone() 前你需要先呼叫 noTone()。 语法 tone(pin, frequency) tone(pin, frequency, duration) 参数 pin: 指定要产生音频的 pin 脚 frequency: 声音的频率 (Hz),unsigned int 型别 duration: 音频的持续时间,单位为毫秒,unsigned long 型别 (此参数为非必需) 回传 无回传值 使用限制 tone() 使用了 pin […]


  • analogWriteResolution()

    analogWriteResolution()

    描述 analogWriteResolution() 可以设定 analogWrite() 函式的解析度,analogWrite() 的输入值预设是 0 到 255 (8 bits),相容于 AVR 系列的 Arduino板。 86Duino 的 CPU 有 12 个 32-bit PWM 计时器,每个 PWM 计时器的最小时间间隔为 10ns。 在 86Duino 上,analogWrite() 函式的 PWM 频率为 1000Hz ,最高解析度是 13,使用 analogWriteResolution() 将解析度设定为 13 就可以让 analogWrite() 的输入数值范围变成 0 到 8191。 语法 analogWriteResolution(bits) 参数 bits: 决定 analogWrite() 函式使用的解析度 (以 bit 为单位),可以设定的范围从 1 […]


  • analogReadResolution()

    analogReadResolution()

    描述 设定 analogRead() 所回传的数值大小 (以 bit 为单位),它预设为 10bits (回传值范围在 0 到 1023) 以相容于 AVR 系列的 Arduino 板。 而 86Duino 开发板的类比转数位硬体则拥有 11-bit 解析度,用此函式设定过后,就可以从 analogRead() 得到 0 到 2047 的 数值。 语法 analogReadResolution(bits) 参数 bits: 决定 analogRead() 函式回传的解析度 (以 bit 为单位),可以设定它的范围从 1 到 32;你可以把解析度设定的比 11 还高,但是 analogRead() 回传的数值会变为近似值,详细说明可以看下面的注解。 回传 无回传值 注解 如果你将 analogReadResolution() 的数值设定的比板子上类比转数位解析度还要高的时候,86Duino 只会回报最高的解析度,额外的位元皆是 0。 举个例子:在 […]


  • analogWrite()

    analogWrite()

    描述 对 pin 脚写入一个类比讯号数值 (pin 脚将输出 PWM 波型),可以用在改变 LED 的亮度以及控制马达的转速,在呼叫 analogWrite() 之后,pin 脚将会产生一个指定 duty 的 PWM 方波,直到下一次再呼叫 analogWrite() (或者在同一个 pin 脚上呼叫 digitalRead()/digitalWrite());在 86Duino 上 PWM 讯号的频率是 1000Hz。 在 86Duino ZERO 上,这个函式会作用在 pin 3、5、6、9、10、11、13;在 86Duino EduCake 上,这个函式会作用在 pin 3、5、6、9、10、11、13、21;在 86Duino ONE 上,这个函式会作用在 pin 3、5、6、9、10、11、13、29、30、31、32。在 86Duino PLC 上,这个函式会作用在 pin 1、3、4、7。 呼叫 analogWrite() 之前不需要去呼叫 pinMode() 来设定 pin 脚为输出。 […]


  • analogRead()

    analogRead()

    描述 从指定的 pin 脚读取类比电压讯号,86Duino 板拥有数个通道 (在 ZERO 和 EduCake 上有 6 个,ONE 上有 7 个) 可以将类比讯号转换成 10-bit 的数位讯号,换句话说,此函式会将 0 到 3.3 伏特的输入电压转换成 0 到 1023 的整数 (或者是 0 到 2047,藉由 analogReadResolution() 来设定,可以让此函式的回传值解析度提升至最高 11-bit)。预设的解析度为 3.3 伏特/1024 单位或相当于 0.0032 伏特 (3.2 毫伏特)/1 单位。 此函式每次会花费 15 微秒 (0.000015s) 的时间来读取类比讯号,所以读取频率约是一秒 66666 次。 另外,由于 86Duino PLC 上没有类比电压通道,使用此函式取得的 10-bit 值将不具任何意义。 语法 […]


  • digitalRead()

    digitalRead()

    描述 从指定的数位 pin 脚读取数值,得到的值只会是 HIGH 或 LOW。 语法 digitalRead(pin) 参数 pin: 欲读取之数位 pin 脚的编号 (int 型别) 回传 HIGH 或 LOW 范例 把 pin 13 设定成和 pin 7 读到的值相同,pin 7 设定为输入端。 注意 如果 pin 脚没有连接任何东西,digitalRead() 可能会回传 HIGH 或者 LOW (它是随机改变的)。 跟 Arduino 不一样,86Duino 的类比输入 pin 脚 (像是 A0、A1 等) 不能被当作数位 pin 脚。 See also - pinMode() […]