×

IO扩展器开源硬件

消耗积分:2 | 格式:zip | 大小:1.65 MB | 2022-11-07

20153

分享资料个

描述

第256章接力!

IO 扩展器现在支持每块板 256 个继电器。由于电缆长度和电容问题,时钟和数据线需要分成两条独立的线,每条线都有 8 个继电器板。前 8 个继电器板带有 R1 和 R2,接下来的 8 个继电器板带有 ECHO 和 TRIG。每条线路的时钟频率为 68KHz,由于它是双时钟接口,因此您可以获得 136KHz 的组合有效数据输出。哦,我们有没有提到它也被锁定,所以所有 256 个继电器在同一时间被激活!

pYYBAGNoc66AYLUFAAm2nztzVlA663.jpg
256继电器图
 

注意:R3 和 R4 连接到第二条线路,如最右侧的绿线所示。

警告:不要在线路之间连接接地,从而形成接地回路!

但是您不必停留在 256 个继电器。您可以将多个IO 扩展器链接在一起并控制多达 65,280 个继电器!

查看我们的 Arduino 项目可控制多达 65,280 个继电器

IO 扩展器不仅仅是一个继电器控制器。您还可以使用它来连接以下传感器,无需驱动程序!

支持的传感器

Maxim 1-Wire® DS18B20、DS18S20、DS1822 温度。
Maxim 1-Wire® 控制。
Maxim 1-Wire® DS28E17 转 I2C。
OneWire AM2302、DHT11、DHT22 温度/湿度。
Sensirion SHT1x 温度/湿度。
4 个继电器或用于 256 个继电器的继电器扩展器。
流动(霍尔效应)。
GPIO 控制。
浮动开关(磁性和光学)。
按钮输入。
接近传感器。(新 v1.14)超声波 HCSR04。ADC TMT6000 灯。Sensirion I2C HTU2x、SHT2x、SHT3x 温度/湿度。I2C 控制。Silicon Labs I2C Si7021 温度/湿度。博世 I2C BMP180 温度/压力。TAOS I2C TSL2561 灯。Ti I2C LM75 温度。

Maxim I2C DS3231 RTC/温度。
爱特梅尔 I2C AT24C32 32Kbps 串行 EEPROM。
SSD1306 0.96"、SSD1309 2.42" (新 v1.14) I2C 128x64 点阵 OLED/PLED 显示屏。
Microchip I2C MCP9600 热电偶温度。
HX711称重传感器重量传感器。(New v1.13) SH1106 1.3" I2C 128x64 Dot Matrix OLED/PLED Display. (New v1.13) TAOS I2C TSL2591 Light. (New v1.14) TAOS I2C TCS34725 RGB Light. (New v1.14) Sensirion I2C SCD30 CO2 温度/湿度。(新 v1.14)系统命令。添加了固件更新的新传感器。

这是 256 个继电器在运行!眼见为实!

/* IO Expander
 *  
 * 256 Relays
 *
 */

#include 
#include "IOExpander.h"
#include 

//#define SERIAL_DEBUG
#define MAX_RELAYS    256

#ifdef SERIAL_DEBUG
SoftwareSerial swSerial(8,7);
#endif

char cmd[10];

void setup()
{
  Serial.begin(115200);
#ifdef SERIAL_DEBUG
  swSerial.begin(115200);
  swSerialEcho = &swSerial;
#endif  
  wdt_enable(WDTO_8S);
  sprintf(cmd, "eb%d", MAX_RELAYS / 16);
  SerialCmdDone(cmd);
}

void loop()
{
  uint8_t i;
  static uint8_t s = 1;
  static uint8_t d = 0;
  uint8_t r[32];

  for (i = 0; i < 32; i++) {
    r[i] = ~s;
  }

  SerialWriteRelayExpander(r, 32);
  delay(50);

  if (d) {
  if (s > 1) s >>= 1;
  else d = 0;
  }
  else {
  if (s < 0x80) s <<= 1;
  else d = 1;
  }

  wdt_reset();
}

因此,立即获取您的 IO 扩展器并构建您的系统!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'IO扩展器开源硬件',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);