查看: 667|回复: 15

[经验] 【Arduino】108种传感器模块系列实验(69)---AT24C256存储模块

[复制链接]
发表于 2019-7-21 09:02 | 显示全部楼层 |阅读模式
本帖最后由 eagler8 于 2019-8-30 08:38 编辑

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

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

实验六十九: AT24C256 I2C接口 EEPROM 存储模块 IIC

AT24C256
是ATMEL公司256kbit串行电可擦的可编程只读存储器,8引脚双排直插式封装,具有结构紧凑、存储容量大等特点,可以在2线总线上并接4片该IC,特别适用于具有高容量数据储存要求的数据采集系统。AT24C256采用SOP-8封装。

0- (1).jpg

 楼主| 发表于 2019-7-22 15:16 | 显示全部楼层
本帖最后由 eagler8 于 2019-7-26 19:10 编辑

Arduino 系列传感器和模块实验目录清单:
一块扩展板完成Arduino的9类18项实验(代码+图形+仿真)
https://www.arduino.cn/thread-88696-1-1.html
实验一:干簧管传感器模块
https://www.arduino.cn/thread-86350-1-1.html
实验二:光敏电阻传感器模块
https://www.arduino.cn/thread-86393-1-1.html
实验三:微波雷达感应开关模块
https://www.arduino.cn/thread-86397-1-1.html
实验四:振动传感器模块
https://www.arduino.cn/thread-86512-1-1.html
实验五:热敏电阻温度传感器模块
https://www.arduino.cn/thread-86520-1-1.html
实验六:KY-038高感度声音传感器模块
https://www.arduino.cn/thread-86576-1-1.html
实验七:旋转电位器模块
https://www.arduino.cn/thread-86866-1-1.html
实验八:湿度传感器模块
https://www.arduino.cn/thread-87993-1-1.html
实验九:火焰(红外线)传感器模块
https://www.arduino.cn/thread-88283-1-1.html
实验十:敲击传感器模块KY-031
https://www.arduino.cn/thread-88401-1-1.html
实验十一:金属触摸传感器模块KY-36
https://www.arduino.cn/thread-88422-1-1.html
实验十二:开关霍尔磁力传感器模块
https://www.arduino.cn/thread-88461-1-1.html
实验十三:触摸传感器模块
https://www.arduino.cn/thread-88523-1-1.html
实验十四:倾斜传感器模块(角度开关)
https://www.arduino.cn/thread-88530-1-1.html
实验十五:手指侦测心跳传感器模块KY-039
https://www.arduino.cn/thread-88557-1-1.html
实验十六:电容式数字触摸传感器模块(TTP223 )
https://www.arduino.cn/thread-88567-1-1.html
实验十七:HC-SR312微型热释电传感器模块
https://www.arduino.cn/thread-88578-1-1.html
实验十八:0.25W太阳能滴胶板传感器模块(45X45毫米)
https://www.arduino.cn/thread-88669-1-1.html
实验十九:常闭型SW-420震动开关传感器模块
https://www.arduino.cn/thread-88672-1-1.html
实验二十:水银开关传感器模块(KY-017)
https://www.arduino.cn/thread-88787-1-1.html
实验二十一:激光头传感器模块(KY-008)
https://www.arduino.cn/thread-88842-1-1.html
实验二十二:MAX7219点阵显示模块(8X8 LED共阴)
https://www.arduino.cn/thread-88851-1-1.html
实验二十三:NE555频率可调脉冲发生器模块(方波简版)
https://www.arduino.cn/thread-88867-1-1.html
实验二十四:水位水滴传感器模块(Water Sensor)
https://www.arduino.cn/thread-88886-1-1.html
实验二十五:MQ-2气敏式烟雾传感器模块(甲烷等)
https://www.arduino.cn/thread-88906-1-1.html
实验二十六:4X4矩阵键盘模块(轻触式按键)
https://www.arduino.cn/thread-88966-1-1.html
实验二十七:GY-BMP280-3.3 高精度大气压强传感器模块
https://www.arduino.cn/thread-89010-1-1.html
实验二十八:三色5050 RGB全彩LED模块 KY-009
https://www.arduino.cn/thread-89022-1-1.html
实验二十九:DS1302实时时钟模块(带电池  掉电走时)
https://www.arduino.cn/thread-89070-1-1.html
实验三十:光敏二极管传感器模块(英语photodiode )
https://www.arduino.cn/thread-89129-1-1.html
实验三十一:ISD1820录音语音模块(8-20秒)
https://www.arduino.cn/thread-89154-1-1.html
实验三十二:雨滴传感器模块(雨水/雨量/叶面湿度)
https://www.arduino.cn/thread-89184-1-1.html
实验三十三:ESP8266串口WIFI收发无线模块 (ESP-01S)
https://www.arduino.cn/thread-89245-1-1.html
实验三十四:三色LED交通灯模块(红绿黄灯)
https://www.arduino.cn/thread-89273-1-1.html
实验三十五:模拟量声音传感器模块(4线制)
https://www.arduino.cn/thread-89289-1-1.html
实验三十六:WS2812B智能外控集成LED四位彩灯模块
https://www.arduino.cn/thread-89297-1-1.html
实验三十七:MQ-3酒精乙醇传感器模块
https://www.arduino.cn/thread-89300-1-1.html
实验三十八:joystick双轴XY按键摇杆模块(游戏控制杆)
https://www.arduino.cn/thread-89365-1-1.html
实验三十九:DS18B20单总线数字温度传感器模块
https://www.arduino.cn/thread-89368-1-1.html
实验四十:360度旋转增量编码器模块(KY-040)
https://www.arduino.cn/thread-89427-1-1.html
实验四十一:IS0203激光接收管传感器模块
https://www.arduino.cn/thread-89428-1-1.html
实验四十二:DSM501A韩国PM2.5灰尘粉尘传感器模块
https://www.arduino.cn/thread-89441-1-1.html
实验四十三:5V低电平触发单路继电器模块
https://www.arduino.cn/thread-89445-1-1.html
实验四十四:类比霍尔磁性传感器 KY-035(模拟量)
https://www.arduino.cn/thread-89464-1-1.html
实验四十五:红外避障传感器模块(光电接近开关)
https://www.arduino.cn/thread-89473-1-1.html
实验四十六:350Ω高精度电阻式应变片传感器 (BF350)
https://www.arduino.cn/thread-89474-1-1.html
实验四十七:七段LED数码管模块(共阴/共阳)
https://www.arduino.cn/thread-89475-1-1.html
实验四十八:GY-291三轴重力加速度模块 (IIC/SPI传输)
https://www.arduino.cn/thread-89567-1-2.html
实验四十九:有源蜂鸣器报警器发声模块(低电平触发)
https://www.arduino.cn/thread-89568-1-2.html
实验五十:W25Q64 FLASH外扩存储模块 (SPI接口 )
https://www.arduino.cn/thread-89570-1-2.html
实验五十一:自锁点动触摸按键传感器模块(TTP223芯片)
https://www.arduino.cn/thread-89721-1-1.html
实验五十二:SPI接口Micro SD卡模块(带电平转换芯片)
https://www.arduino.cn/thread-89729-1-1.html
实验五十三: 土壤湿度水分传感器模块(电阻式)
https://www.arduino.cn/thread-89734-1-1.html
实验五十四: 大按键点动轻触开关模块(高电平输出)
https://www.arduino.cn/thread-89785-1-1.html
实验五十五:DHT11 温湿度传感器(数字型单总线通信)
https://www.arduino.cn/thread-89786-1-1.html
实验五十六: 8路LED流水的灯跑马灯模块SUNLEPHANT
https://www.arduino.cn/thread-89832-1-1.html
实验五十七: 四档频率占空比可调矩形波信号发生器(NE555)
https://www.arduino.cn/thread-89868-1-1.html
实验五十八: HC-SR04超声波测距传感器模块(通用款)
https://www.arduino.cn/thread-89869-1-1.html
实验五十九: RS232转TTL2代串口模块刷机板(MAX3232)
https://www.arduino.cn/thread-89895-1-1.html
实验六十:ATTINY85 Digispark kickstarter 微型usb开发板
https://www.arduino.cn/thread-89898-1-1.html
实验六十一: 直条8位 WS2812B 5050 RGB LED全彩模块
https://www.arduino.cn/thread-90147-1-1.html
实验六十二:电压检测模块 Voltage Sensor 电压传感器
https://www.arduino.cn/thread-90149-1-1.html
实验六十三: 1排4键薄膜开关 Arduino扩展键盘模块控制面板
https://www.arduino.cn/thread-90150-1-1.html
实验六十四: TCS3200D颜色识别传感器(可编程彩色光频模块)
https://www.arduino.cn/thread-90168-1-1.html
实验六十五: 5MM三色RGB全彩LED模块颜色传感器KY-016
https://www.arduino.cn/thread-90400-1-1.html
实验六十六: TCRT5000红外反射光电开关寻迹传感器模块
https://www.arduino.cn/thread-90402-1-1.html
实验六十七:HC-SR501 热释电人体红外感应传感器模块
https://www.arduino.cn/thread-90404-1-1.html
实验六十八: GY-68 BMP180 新款 BOSCH温度模块气压传感器
https://www.arduino.cn/thread-90411-1-1.html
实验六十九: AT24C256 I2C接口 EEPROM 存储模块 IIC
https://www.arduino.cn/thread-90412-1-1.html
实验七十: GY-30 数字光强度传感器模块(BH1750FVI芯片)
https://www.arduino.cn/thread-90413-1-1.html
实验七十一:电容式土壤湿度传感器模块(TL555I)
https://www.arduino.cn/thread-90471-1-1.html
实验七十二:HX1838红外无线遥控套件红外扩展模块(遥控器+接收板)
https://www.arduino.cn/thread-90473-1-1.html
实验七十三:人体秤50kg称重传感器模块(电阻应变半桥式)
https://www.arduino.cn/thread-90545-1-1.html
实验七十四:4位LED数码管显示模块0.36英寸亮度可调带时钟点( TM1637)
https://www.arduino.cn/thread-90546-1-1.html
实验七十五: GY-NEO-6MV2新款飞控GPS模块 (带大天线)
https://www.arduino.cn/thread-90547-1-1.html
实验七十六:TTL转RS-485模块 MAX485 RS485模块
https://www.arduino.cn/thread-90549-1-1.html
实验七十七: 2路继电器模块 带光耦保护Arduino扩展板
https://www.arduino.cn/thread-90557-1-1.html
 楼主| 发表于 2019-7-25 14:28 | 显示全部楼层
芯片参数
芯片有3种工作电压;
  5.0V(VCC=4.5V~5.5V)
  2.7V(VCC=2.7V~5.5V)
  1.8V(VCC=1.8V~3.6V)
特性:
  内部可以组成32k×8存储单元
  2线串行接口
  斯密特触发,滤波输入抑制噪声
  双向数据传送协议
  硬件写保护引脚和软件数据保护功能
  具有64字节页写模式

0-0 (1).jpg

 楼主| 发表于 2019-7-25 14:31 | 显示全部楼层
01.jpg
 楼主| 发表于 2019-7-25 14:45 | 显示全部楼层
A0、A1:地址选择输入端。在串行总线结构中,可以连接4个AT24C256IC。用A0、A1来区分各IC。A0、A1悬空时为0。
SCL:串行时钟输入。上升沿将SDA上的数据写入存储器,下降沿从存储器读出数据送SDA上。
SDA:双向串行数据输入输出口。用于存储器与单片机之间的数据交换。
WP:写保护输入。此引脚与地相连时,允许写操作;与VCC相连时,所有的写存储器操作被禁止。如果不连,芯片内部下拉到地。
VCC:电源。
GND:地。
NC:空。
01-.jpg

 楼主| 发表于 2019-7-25 15:21 | 显示全部楼层
AT24C256的工作原理
AT24C256内部有512页,每一页为64字节,任一单元的地址为15位。地址范围0000H~7FFFH。
芯片工作状态
1)时钟和数据传送
一般情况下,SDA被外部的设备拉到高,只有当SCL为低电平时,SDA上的数据变化,表示要传送数据。SCL为高时SDA变化表示状态变化。
2)开始状态(START)
当SCL为高时,SDA由高到低表示数据传送开始,这一状态必须在所有命令之前。
3)结束状态(STOP)
当SCL为高时,SDA由低到高表示数据传送结束状态。
4)应答状态(ACK)
所有的地址和数据都是以8位的形式串行传送给存储器或从存储器读出的。存储器在第9个时钟周期SDA发零信号表示已经收到8位数据。见图总线协议图。
01--.jpg

 楼主| 发表于 2019-7-25 15:34 | 显示全部楼层
AT24C256 I2C接口 EEPROM 存储模块

02.jpg
 楼主| 发表于 2019-7-25 15:39 | 显示全部楼层
1.板载芯片AT24C256进口芯片;
2.板载I2C通讯所需的上拉电阻;
3.所有管脚均引出并标注;
4.PCB板子尺寸:1.9(CM)x1.1(CM)

03 (1).jpg

 楼主| 发表于 2019-7-25 15:46 | 显示全部楼层
模块电原理图
07.jpg
 楼主| 发表于 2019-7-25 17:17 | 显示全部楼层

kittenblock中小学创客名师推荐的图形化编程软件

/*
【Arduino】66种传感器模块系列实验(68)
实验六十九: AT24C256 I2C接口 EEPROM 存储模块
*/

#include <Wire.h>

#define ADDRESS_AT24C256 0x50

word wordAddress = 0x0F00; 
char str[] = "This is ZLBG."; 
byte buffer[30]; 

int i;

void setup()
{
    Wire.begin();
    Serial.begin(9600);

    //write
    Wire.beginTransmission(ADDRESS_AT24C256);
    Wire.write(highByte(wordAddress));
    Wire.write(lowByte(wordAddress));
    for (i = 0; i < sizeof(str); i++)
    {
        Wire.write(byte(str));
    }
    Wire.endTransmission();    

    delay(10); 
}

void loop()
{
    
    Wire.beginTransmission(ADDRESS_AT24C256);
    Wire.write(highByte(wordAddress));
    Wire.write(lowByte(wordAddress));
    Wire.endTransmission();
    Wire.requestFrom(ADDRESS_AT24C256, sizeof(str));
    if(Wire.available() >= sizeof(str))
    {
        for (i = 0; i < sizeof(str); i++)
        {
            buffer = Wire.read();
        }
    }

    
    for(i = 0; i < sizeof(str); i++)
    {
        Serial.print(char(buffer));
    }
    Serial.println();

    delay(2000);
}

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

本版积分规则

热门推荐

Blynk与m5stack basic以及uiflow的交互玩法
Blynk与m5stack basic以及
Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
Arduino Ter什么时候上市购买
Arduino Ter什么时候上市
一直没人问 那我就来问问好了 深爱 Arduino 但目前的开发板资源有限 简单的就比如现有
blinker无法对ESP8266下发指令
blinker无法对ESP8266下发
blinker端的数据键名称是与代码对应的,连接wifi特显示arduino在线,但按键的话把8266
helloWifi上传出错
helloWifi上传出错
板子:Node mcu 已下载Blinker库,已下载对应ESP8266库(图二) 问题描述:编译出错
APP
APP
哪位大佬有这款 App ,求apk
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表