找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: eagler8
打印 上一主题 下一主题
收起左侧

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

  [复制链接]
1881#
ID:513258 发表于 2019-8-21 17:36 | 只看该作者


OLED特点
(1)功耗低——与LCD相比,OLED不需要背光源,而背光源在LCD中是比较耗能的一部分,所以OLED是比较节能的。例如,24in的AMOLED模块功耗仅仅为440mw,而24in的多晶硅LCD模块达到了605mw。
(2)响应速度快——OLED技术与其他技术相比,其响应速度快,响应时间可以达到微秒级别。较高的响应速度更好的实现了运动的图像。根据有关的数据分析,其响应速度达到了液晶显示器响应速度的1000倍左右。
(3)较宽的视角——与其他显示相比,由于OLED是主动发光的,所以在很大视角范围内画面是不会显示失真的。其上下,左右的视角宽度超过170度。
(4)能实现高分辨率显示——大多高分辨率的OLED显示采用的是有源矩阵也就是AMOLED,它的发光层可以是吸纳26万真彩色的高分辨率,并且随着科学技术的发展,其分辨率在以后会得到更高的提升。
(5)宽温度特性——与LCD相比,OLED可以在很大的温度范围内进行工作,根据有关的技术分析,温度在-40摄氏度到80摄氏度都是可以正常运行的。这样就可以降低地域限制,在极寒地带也可以正常使用。
(6)OLED能够实现软屏——OLED可以在塑料、树脂等不同的柔性衬底材料上进行生产,将有机层蒸镀或涂布在塑料基衬上,就可以实现软屏。
(7)OLED成品的质量比较轻——与其他产品相比,OLED的质量比较小,厚度与LCD相比是比较小的,其抗震系数较高,能够适应较大的加速度,振动等比较恶劣的环境。




回复

使用道具 举报

1882#
ID:513258 发表于 2019-8-21 18:36 | 只看该作者


OLED与LED\LCD对比
1、相较于LED或LCD的晶体层,OLED的有机塑料层更薄、更轻而且更富于柔韧性。
2、OLED的发光层比较轻,因此它的基层可使用富于柔韧性的材料,而不会使用刚性材料。OLED基层为塑料材质,而LED和LCD则使用玻璃基层。
3、OLED比LED更亮,OLED有机层要比LED中与之对应的无机晶体层薄很多,因而OLED的导电层和发射层可以采用多层结构。此外,LED和LCD需要用玻璃作为支撑物,而玻璃会吸收一部分光线。OLED则无需使用玻璃。
4、OLED并不需要采用LCD中的逆光系统。LCD工作时会选择性地阻挡某些逆光区域,从而让图像显现出来,而OLED则是靠自身发光。因为OLED不需逆光系统,所以它们的耗电量小于LCD(LCD所耗电量中的大部分用于逆光系统)。这一点对于靠电池供电的设备(例如移动电话)来说,尤其重要。
5、OLED制造起来更加容易,还可制成较大的尺寸。OLED为塑胶材质,因此可以将其制作成大面积薄片状。而想要使用如此之多的晶体并把它们铺平,则要困难得多。
6、OLED的视野范围很广,可达170度左右。而LCD工作时要阻挡光线,因而在某些角度上存在天然的观测障碍。OLED自身能够发光,所以视域范围也要宽很多。




回复

使用道具 举报

1883#
ID:513258 发表于 2019-8-21 18:41 | 只看该作者







回复

使用道具 举报

1884#
ID:513258 发表于 2019-8-21 19:07 | 只看该作者
ll

0.96寸OLED模块
电压:3V~5V DC
工作温度:-30℃~70℃
驾驶义务:1/64职责
高分辨率:128 * 64
面板尺寸:26.70 * 19.26 * 1.85mm / 1.03 * 0.76 * 0.07英寸(约)
有效面积:21.74 * 11.2mm /0.86*0.44英寸(约)
驱动IC:SSD1306
128 * 64 LED显示模块,支持多种控制芯片。
完全兼容51系列,MSP430系列,STM32 / 2,CSR IC等
超低功耗:全屏点亮0.08W
超高亮度和对比度可调
带嵌入式驱动/控制器
接口类型为IIC

回复

使用道具 举报

1885#
ID:513258 发表于 2019-8-21 19:15 | 只看该作者



回复

使用道具 举报

1886#
ID:513258 发表于 2019-8-21 19:17 | 只看该作者

回复

使用道具 举报

1887#
ID:513258 发表于 2019-8-22 10:42 | 只看该作者
模块电原理图




回复

使用道具 举报

1888#
ID:513258 发表于 2019-8-22 10:52 | 只看该作者




回复

使用道具 举报

1889#
ID:513258 发表于 2019-8-22 10:54 | 只看该作者




回复

使用道具 举报

1890#
ID:513258 发表于 2019-8-22 10:56 | 只看该作者

回复

使用道具 举报

1891#
ID:513258 发表于 2019-8-22 11:42 | 只看该作者
  1. /*
  2. 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  3. 实验九十七: 0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块
  4. 安装驱动库:工具—管理库—搜索“U8glib”-下载-安装
  5. 实验接线:A4---SDA, A5---SCL
  6. 项目一:第一次点亮OLED屏
  7. */

  8. #include "U8glib.h"
  9. String i="Time:";
  10. int s=0;//变量秒  用来显示
  11. U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);        // 小E开发板上面就是用的这个

  12. void draw() {
  13.   u8g.setFont(u8g_font_unifont); //  设置字体 这句必要
  14.   u8g.drawStr( 1, 10, "Hello Eagler8!");//第一个是x第二个是y坐标
  15.   u8g.setFont(u8g_font_ncenB14);//还是先设置一个字体
  16.   u8g.setPrintPos(0,44);//然后设置一个位置
  17.   u8g.print(i);//然后就是数据
  18.   u8g.print(s);
  19. }

  20. void setup(void) {
  21. }

  22. void loop(void) {
  23. if(s!=millis()/10)
  24.   s=millis()/10;
  25.   //上面这一句是取系统运行秒数  单位ms除以1000就是秒
  26.   u8g.firstPage();  
  27.   do {
  28.     draw();
  29.   }
  30.   while( u8g.nextPage() ); //延迟一段时间后重新生成图片
  31.   delay(10);
  32. }
复制代码


回复

使用道具 举报

1892#
ID:513258 发表于 2019-8-22 11:53 | 只看该作者

回复

使用道具 举报

1893#
ID:513258 发表于 2019-8-22 13:24 | 只看该作者
  1. /*
  2. 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  3. 实验九十七: 0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块
  4. 安装驱动库:工具—管理库—搜索“U8glib”-下载-安装
  5. 实验接线:A4---SDA, A5---SCL
  6. 项目二:测试之1-100循环显示数字
  7. */

  8. #include "U8glib.h"  //加载显示库文件
  9. U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);  
  10. // I2C / TWI 实例化

  11. void setup() {
  12. }

  13. void loop() {
  14.   for(int i=1;i<101;i++){
  15.      u8g.firstPage();  //一下是显示实现部分
  16.   do {
  17.   u8g.setFont(u8g_font_fub30);
  18.   //设置字体和自号,目前测试字号有fub14,17,20,30
  19.   u8g.setPrintPos(0, 50); //显示的位置
  20.   u8g.print(i);//显示变量i的值
  21.   u8g.setFont(u8g_font_fub14);//设置字体和自号
  22.   u8g.setPrintPos(95, 50); //显示的位置
  23.   u8g.print("cm");//显示cm字样
  24.   }
  25.   while( u8g.nextPage() );
  26.   delay(100);//显示的时间间隔。
  27.   }
  28. }
复制代码


回复

使用道具 举报

1894#
ID:513258 发表于 2019-8-22 16:05 | 只看该作者


有关OLED的两个非常重要的知识点:
其一 像素点点阵
点阵图也叫栅格图像,像素图,简单的说,就是最小单位由像素构成的图,缩放会失真。构成位图的最小单位是像素,位图就是由像素阵列的排列来实现其显示效果的,每个像素有自己的颜色信息,在对位图图像进行编辑操作的时候,可操作的对象是每个像素,我们可以改变图像的色相、饱和度、明度,从而改变图像的显示效果。举个例子来说,位图图像就好比在巨大的沙盘上画好的画,当你从远处看的时候,画面细腻多彩,但是当你靠的非常近的时候,你就能看到组成画面的每粒沙子以及每个沙粒单纯的不可变化颜色。

OLED其实就是一个M x n 的像素点阵,想显示什么就得把具体位置的像素点亮起来。对于每一个像素点,有可能是1点亮,也有可能是0点亮。




回复

使用道具 举报

1895#
ID:513258 发表于 2019-8-22 16:16 | 只看该作者
其二 坐标系
坐标系,是理科常用辅助方法。常见有直线坐标系,平面直角坐标系。为了说明质点的位置、运动的快慢、方向等,必须选取其坐标系。在参照系中,为确定空间一点的位置,按规定方法选取的有次序的一组数据,这就叫做“坐标”。在某一问题中规定坐标的方法,就是该问题所用的坐标系。坐标系的种类很多,常用的坐标系有:笛卡尔直角坐标系、平面极坐标系、柱面坐标系(或称柱坐标系)和球面坐标系(或称球坐标系)等。中学物理学中常用的坐标系,为直角坐标系,或称为正交坐标系。从广义上讲:事物的一切抽象概念都是参照于其所属的坐标系存在的,同一个事物在不同的作标系中就会有不同抽象概念来表示,坐标系表达的事物有联系的抽象概念的数量【既坐标轴的数量】就是该事物所处空间的维度。两件能相互改变的事物必须在同坐标系中。

在OLED坐标系中,左上角是原点,向右是X轴,向下是Y轴。




回复

使用道具 举报

1896#
ID:513258 发表于 2019-8-22 16:30 | 只看该作者
  1. /*
  2. 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  3. 实验九十七: 0.96寸I2C IIC通信128*64显示器 OLED液晶屏模块
  4. 安装驱动库:工具—管理库—搜索“U8glib”-下载-安装
  5. 实验接线:A4---SDA, A5---SCL
  6. 项目三:将U8Glib标志放在显示屏上(Put the U8GLIB logo on the display.)
  7. 显示“Copyright (c) 2019, eagler8@126.com”
  8. */

  9. #include "U8glib.h"

  10. U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);  

  11. void drawColorBox(void)
  12. {
  13.   u8g_uint_t w, h;
  14.   u8g_uint_t r, g, b;

  15.   w = u8g.getWidth() / 32;
  16.   h = u8g.getHeight() / 8;
  17.   for ( b = 0; b < 4; b++ )
  18.     for ( g = 0; g < 8; g++ )
  19.       for ( r = 0; r < 8; r++ )
  20.       {
  21.         u8g.setColorIndex((r << 5) |  (g << 2) | b );
  22.         u8g.drawBox(g * w + b * w * 8, r * h, w, h);
  23.       }
  24. }

  25. void drawLogo(uint8_t d)
  26. {
  27. #ifdef MINI_LOGO
  28.   u8g.setFont(u8g_font_gdr17r);
  29.   u8g.drawStr(0 + d, 22 + d, "U");
  30.   u8g.setFont(u8g_font_gdr20n);
  31.   u8g.drawStr90(17 + d, 8 + d, "8");
  32.   u8g.setFont(u8g_font_gdr17r);
  33.   u8g.drawStr(39 + d, 22 + d, "g");

  34.   u8g.drawHLine(2 + d, 25 + d, 34);
  35.   u8g.drawVLine(32 + d, 22 + d, 12);
  36. #else
  37.   u8g.setFont(u8g_font_gdr25r);
  38.   u8g.drawStr(0 + d, 30 + d, "U");
  39.   u8g.setFont(u8g_font_gdr30n);
  40.   u8g.drawStr90(23 + d, 10 + d, "8");
  41.   u8g.setFont(u8g_font_gdr25r);
  42.   u8g.drawStr(53 + d, 30 + d, "g");

  43.   u8g.drawHLine(2 + d, 35 + d, 47);
  44.   u8g.drawVLine(45 + d, 32 + d, 12);
  45. #endif
  46. }

  47. void drawURL(void)
  48. {
  49. #ifndef MINI_LOGO
  50.   u8g.setFont(u8g_font_4x6);
  51.   if ( u8g.getHeight() < 59 )
  52.   {
  53.     u8g.drawStr(53, 9, "Copyright (c) 2019,");
  54.     u8g.drawStr(77, 18, "eagler8@126.com");
  55.   }
  56.   else
  57.   {
  58.     u8g.drawStr(1, 54, " Copyright (c) 2019, eagler8@126.com");
  59.   }
  60. #endif
  61. }


  62. void draw(void) {
  63.   if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
  64.     drawColorBox();
  65.   }
  66.   u8g.setColorIndex(1);
  67.   if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g.getMode()) > 1 ) {
  68.     drawLogo(2);
  69.     u8g.setColorIndex(2);
  70.     drawLogo(1);
  71.     u8g.setColorIndex(3);
  72.   }
  73.   drawLogo(0);
  74.   drawURL();

  75. }

  76. void setup(void) {
  77. }

  78. void loop(void) {

  79.   u8g.firstPage();
  80.   do {
  81.     draw();
  82.     u8g.setColorIndex(1);
  83.   } while ( u8g.nextPage() );

  84.   delay(200);
  85. }
复制代码


回复

使用道具 举报

1897#
ID:513258 发表于 2019-8-22 16:36 | 只看该作者

回复

使用道具 举报

1898#
ID:513258 发表于 2019-8-22 17:26 | 只看该作者

回复

使用道具 举报

1899#
ID:513258 发表于 2019-8-22 17:28 | 只看该作者

回复

使用道具 举报

1900#
ID:513258 发表于 2019-8-22 19:28 | 只看该作者




回复

使用道具 举报

1901#
ID:513258 发表于 2019-8-22 19:30 | 只看该作者




回复

使用道具 举报

1902#
ID:513258 发表于 2019-8-22 19:37 | 只看该作者




回复

使用道具 举报

1903#
ID:513258 发表于 2019-8-22 19:38 | 只看该作者




回复

使用道具 举报

1904#
ID:513258 发表于 2019-8-22 19:41 | 只看该作者

回复

使用道具 举报

1905#
ID:513258 发表于 2019-8-22 19:43 | 只看该作者
[media=x,500,375][/media]
回复

使用道具 举报

1906#
ID:513258 发表于 2019-8-22 20:51 | 只看该作者

回复

使用道具 举报

1907#
ID:513258 发表于 2019-8-22 20:54 | 只看该作者

回复

使用道具 举报

1908#
ID:513258 发表于 2019-8-22 20:56 | 只看该作者
回复

使用道具 举报

1909#
ID:513258 发表于 2019-8-22 21:00 | 只看该作者

回复

使用道具 举报

1910#
ID:513258 发表于 2019-8-22 21:02 | 只看该作者

回复

使用道具 举报

1911#
ID:513258 发表于 2019-8-22 21:03 | 只看该作者

回复

使用道具 举报

1912#
ID:513258 发表于 2019-8-22 21:05 | 只看该作者

回复

使用道具 举报

1913#
ID:513258 发表于 2019-8-23 11:25 | 只看该作者
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉。

实验九十八: L298N电机驱动板模块直流步进电机智能机器人小车模组



回复

使用道具 举报

1914#
ID:513258 发表于 2019-8-23 15:13 | 只看该作者
L298N
是专用驱动集成电路,属于H桥集成电路,与L293D的差别是其输出电流增大,功率增强。其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等,特别是其输入端可以与单片机直接相联,从而很方便地受单片机控制。当驱动直流电机时,可以直接控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。

L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。

L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。4脚VS接电源电压,VS电压范围VIH为+2.5~46V。输出电流可达2A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。




回复

使用道具 举报

1915#
ID:513258 发表于 2019-8-23 15:19 | 只看该作者




回复

使用道具 举报

1916#
ID:513258 发表于 2019-8-23 15:24 | 只看该作者

回复

使用道具 举报

1917#
ID:513258 发表于 2019-8-23 15:46 | 只看该作者


L298N特性参数   
      类型: 半桥
  输入类型:非反相
  输出数:4
  电流-输出/通道:2A
  电流-峰值输出:3A
  电源电压:4.5V~46V
  工作温度:-25°C~130°C
  安装类型:通孔
  封装/外壳:MulTIwatt-15(垂直,弯曲和错列引线)
  供应商设备封装:15-MulTIwatt
  包装:管件
  器件型号L298N
  制造商STMicroelectronics
  产品型号MotionMotorControl

回复

使用道具 举报

1918#
ID:513258 发表于 2019-8-23 16:01 | 只看该作者

回复

使用道具 举报

1919#
ID:513258 发表于 2019-8-23 16:21 | 只看该作者

L298N电机驱动板模块的参数
1.驱动芯片:L298N双H桥直流电机驱动芯片
2.驱动部分端子供电范围Vs:+5V~+35V ; 如需要板内取电,则供电范围Vs:+7V~+35V
3.驱动部分峰值电流Io:2A
4.逻辑部分端子供电范围Vss:+5V~+7V(可板内取电+5V)
5.逻辑部分工作电流范围:0~36mA
6.控制信号输入电压范围:
   低电平:-0.3V≤Vin≤1.5V
   高电平:2.3V≤Vin≤Vss
7.使能信号输入电压范围:
   低电平:-0.3≤Vin≤1.5V(控制信号无效)
   高电平:2.3V≤Vin≤Vss(控制信号有效)
8.最大功耗:20W(温度T=75℃时)

回复

使用道具 举报

1920#
ID:513258 发表于 2019-8-23 16:36 | 只看该作者
模块电原理图










回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表