机器谱

如何使用探索者输出模块

作者:机器谱

图文展示3264(1)(1)

图文展示3264(1)(1)

副标题

OLED显示模块
红绿双色LED
语音录放模块

1. 简介

       OLED显示屏是一款无需背光源、自发光的显示模块。显示颜色为白色,显示尺寸0.96寸,驱动IC:SSD1306,该模块采用3.3V电源,通过IIC接口与控制器通信。显示效果好,安装方便。

2. 特点

  · 支持 Arduino OLED 12864 驱动库

  · I2C 接口,节省显示模块与控制器的连接线数量。

3. 参数

  · 工作电压:3.3V

  · 显示颜色:白色

  · 像素个数:128× 64

  · 接口方式:IIC

  · 工作温度:-30℃~+70℃

  · 显示面积:21.744 × 10.864(mm)

4. 实物图片与接口

5. 用法示例

(1)显示字母、数字、图形

环境:OLED显示屏、Basra控制板、BigFish扩展板、Arduino 1.5.2。

将OLED显示模块连接在Bigfish的A4/A5端口上。

将OLED扩展库“MultiLCD”拷贝到arduino的libraries中。

启动Arduino IDE,可以发现,在Example中增加了MultiLCD的例程,打开File→Examples→MultiLCD→lcdhello

例程源代码如下(lcdhello.ino):

将例程uploading到控制板中,观察OLED屏上显示的内容,如下图所示:

资料清单

序号

内容
1

参考资料

2
字模软件
3OLED模块函数库
4OLED模块例程
点击打包下载


/*************************************************************************

* Demo sketch of Arduino Text Display Library for Multiple LCDs

* Distributed under GPL v2.0

* Copyright (c) 2013 Stanley Huang <stanleyhuangyc@live.com>

* All rights reserved.

*************************************************************************/

#include <Arduino.h>

#include <Wire.h>

#include <MultiLCD.h>

LCD_SSD1306 lcd; /* for SSD1306 OLED module */

static const PROGMEM uint8_t smile[48 * 48 / 8] = {

0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xFC,0xFE,0xFF,0xFF,0xFF,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0xC0,0x00,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x30,0xF8,0xF8,0xF8,0xF8,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF8,0xF8,0xFC,0xF8,0x30,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x00,0x03,0x0F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFC,0xF8,0xF0,0xE1,0xC7,0x87,0x0F,0x1F,0x3F,0x3F,0x3E,0x7E,0x7C,0x7C,0x7C,0x78,0x78,0x7C,0x7C,0x7C,0x7E,0x3E,0x3F,0x3F,0x1F,0x0F,0x87,0xC7,0xE1,0xF0,0xF8,0xFC,0xFF,0xFF,0xFF,0x7F,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,};

void setup()

{

lcd.begin();

}

void loop()

{

lcd.clear();

    lcd.draw(smile, 40, 8, 48, 48);

    delay(3000);


lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Hello, world!");


lcd.setCursor(0, 1);

lcd.printLong(1234567890, FONT_SIZE_SMALL);


lcd.setCursor(0, 2);

lcd.printLong(1234567890, FONT_SIZE_MEDIUM);


lcd.setCursor(0, 3);

lcd.printLong(12345678, FONT_SIZE_LARGE);

    delay(3000);

}

#define ECHOPIN A0 //使用宏定义对超声波模块连接的引脚进行定义

#define TRIGPIN A1


#include <Arduino.h>

#include <Wire.h>

#include <MultiLCD.h>


LCD_SSD1306 lcd; /* for SSD1306 OLED module */


void setup()

{

lcd.begin();

        int a=0;

        pinMode(ECHOPIN, INPUT);

        pinMode(TRIGPIN, OUTPUT);

       

}


void loop()


{   lcd.clear();


        int a=Distance();

lcd.clear();

lcd.setCursor(0, 2);

lcd.print("The distance is:");


lcd.setCursor(0, 4);

lcd.print(a);


lcd.setCursor(0, 5);

lcd.print("cm");

        delay(3000);

}


int Distance() //超声波距离测量函数,返回测量的距离

{

digitalWrite(TRIGPIN, LOW);

delayMicroseconds(2);

digitalWrite(TRIGPIN, HIGH);

delayMicroseconds(10);

digitalWrite(TRIGPIN, LOW);

int distance = pulseIn(ECHOPIN, HIGH);

distance= distance/58;

return distance;

}

配置之后,点击主界面右下侧的“生成字模”。将生成的字模编码复制粘贴到例程中的相应位置,即可显示不同的图形。

7. 原理图

8. 参考资料

【MultiLCD作者】

【GOF】

9. 应用前景

  · 互动媒体设计

  · 改装玩具

  · 教育行业方案快速成型

  · DIY电子

10. 注意事项

显示屏易碎,勿承受压力!

11. 资料下载

(2)电子测距仪

该段代码实现的具体功能为:在超声波传感器前放置屏障,移动传感器,随着距离的增减,OLED显示屏会刷新显示相应的距离数值。

显示效果如下:

从左至右

1、GND

2、VCC:逻辑电压5V

3、SDA/A4:IIC数据输入引脚

4、SCL/A5:IIC时钟输入引脚

6. 字模软件

      在“显示字母、数字、图形”的例程中,oled屏上显示的一张笑脸是通过一个48*48/8大小的一维十六进制数组设置的。这个数组中的每一个十六进制数即8位二进制数代表了屏幕上某8个像素点的亮灭情况(这8个像素点可以视为一个小单元),这些数组元素叫做“字模”是由字模软件生成的。

     在本文的最后可以下载一款字模软件。打开软件后,“模式”选项下,有两种模式,“图形模式”和“字符模式”,默认为图形模式。

     在图形模式下,可以新建一个合适像素大小的BMP图像,之后在空白图像上画自己想要的图形,左键画图,右键擦除,画完之后,经过“配置”,即可生成字模数组。

      在字符模式下,可以使用键盘输入数字、字母和汉字,同样,输入完之后经过“配置”即可生成字模数组。

     “配置”选项,对于探索者的OLED屏,请按如下图片配置。

OLED显示模块

1. 简介

      探索者红绿双色LED是一种灯光输出模块,它可以显示红绿两种颜色,当检测到不同方向的电流时,传感器上的LED灯会显示不同的颜色。主控芯片可根据传感器采集的电平高低做出相应的颜色。

2. 工作原理

      红绿双色LED是检测通过三极管的电流方向来显示不同的颜色。也就是说三极管左右两侧电压的正负决定了显示什么。比如A端的电压为正极,B端为负极,那么led显示红色。相反的B端的电压为正极,A端为负极,那么led显示绿色


原理图:

实物与PCB引脚对照图:

引脚从左到右接线说明表

pin

名称

注释

1
GND

接地,电源负极

2
VCC供电5V DC
3DATA1数据接口1
4

DATA2

数据接口2


void red();

void green();

void off();


void setup()

{

  pinMode( A4 , OUTPUT);

  pinMode( A5 , OUTPUT);

}


void loop()

{

  red();

  delay( 1000 );

  off();

  delay( 1000 );

  green();

  delay( 1000 );

  off();

  delay( 1000 );

}


void red()

{

  digitalWrite( A4 , HIGH );

  digitalWrite( A5 , LOW );

}


void off()

{

  digitalWrite( A4 , LOW );

  digitalWrite( A5 , LOW );

}


void green()

{

  digitalWrite( A4 , LOW );

  digitalWrite( A5 , HIGH );

}

3. 用法示例

效果:当A4为高电平,A5为低电平时,LED显示红色,否则LED显示绿色。

环境:Basra主控板,Bigfish扩展板,红绿双色LED,Arduino IDE等。

电路:将传感器接在Bigfish的A4/A5接口上。


程序源代码如下:

4. 应用场景

  · 模拟信号灯

  · 摩尔斯电码模拟

5. 资料下载

资料清单

序号

内容
1

红绿双色LED_原理文件

2红绿双色LED_例程
点击打包下载


红绿双色LED

1. 按键说明

    语音模块可录制、存储和播放50分贝以上音频,最长可录制音频的时间为20秒。

    ①REC:录制键,一直按下可以录音,录音时黄色LED灯长亮,录制完毕后松开录音键LED灯熄灭,录制时长不超过20s,且只能录制1段;

    ②四芯输出线接口,用于连接四芯输出线;

    ③PLAY:播放键,按下,课播放录音,播放音频结束后,LED灯闪烁一下;

    ④固定孔,便于用螺丝将模块固定于机器人上;

    ⑤音频输出口,课插入音频输出线进行录音;

    ⑥麦克风,录制音频时需要将音源对准麦克风;

    ⑦音频输入口,可插入音频输入线进行录音;

2. 使用方法

(1)长按REC键,录制一小段语音,接线如下(注意使用四芯输出线):

(2)按PLAY键,即可播放该段语音;也可以将下面的代码写入Basra主控板,来播放录制的音频;

void setup() {

  // put your setup code here, to run once:

pinMode(14,OUTPUT);

}


void loop() {

  // put your main code here, to run repeatedly:

  voice();

  delay(2000);

}


void voice()

{

  digitalWrite(A0,HIGH);

  digitalWrite(A0,LOW);

}

3. 注意事项

    语音模块的声音播放的声音比较小,可以连结音箱使用。使用音箱时,要注意:

(1)首先需要一根耳机双头线,一端连上电脑耳机孔,一段连在语音模块的音频输入口(即图一中的⑦号口),在电脑上播放想要录制的语音文件,即可将语音录制到模块中。

(2)录制完语音后,将音箱的音频线连接到语音模块的音频输出口(即图一中的⑤号口)。

这样,就可以通过音箱放大语音模块的声音了。

语音录放模块
© 2022 机器时代(北京)科技有限公司  版权所有
机器谱——机器人共享方案网站
学习  开发  设计  应用