MPPT电源控制器设计

0. 引言

实物效果图:

        

Blinker显示 

 

 主控芯片:ESP-12F

1. IIC设备地址扫描

#include <Arduino.h>

#include <Wire.h>
void setup()
{
  Wire.begin();
  Serial.begin(115200);
  while (!Serial)
    ;
  Serial.println("\nI2C Scanner");
}
void loop()
{
  byte error, address;
  int nDevices;
  Serial.println("Scanning...");
  nDevices = 0;
  for (address = 1; address < 127; address++)
  {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.print(address, HEX);
      Serial.println("  !");
      nDevices++;
    }
    else if (error == 4)
    {
      Serial.print("Unknown error at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.println(address, HEX);
    }
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");

  delay(5000); // wait 5 seconds for next scan
}

2. 环境光强检测

传感器:GY-302,Addr:0x23,开发板ESP8266

引脚连接:

VCC   3.3V

SCL   GPIO5  D1

SDA   GPIO4   D2

void BH1750_Init(int address)
{
  Wire.beginTransmission(address);
  Wire.write(0x10);//1lx reolution 120ms
  Wire.endTransmission();
}

 

 光照强度(单位lx)=(High Byte  + Low Byte)/ 1.2

val = ((buff[0] << 8) | buff[1]) / 1.2;
#include <Arduino.h>
#include <Wire.h>

int BH1750address = 0x23; // GY-302  IIC地址
byte buff[2];

// BH1750初始化
void BH1750_Init(int address)
{
  Wire.beginTransmission(address);
  Wire.write(0x10); //在1 lx分辨率下开始测量,测量时间为120ms
  Wire.endTransmission();
}
// 获取光强
int BH1750_Read(int address) //
{
  int LUX = 0;
  Wire.beginTransmission(address);
  Wire.requestFrom(address, 2);
  while (Wire.available()) //
  {
    buff[LUX] = Wire.read(); // receive one byte
    LUX++;
  }
  Wire.endTransmission();
  return LUX;
}

void setup()
{
  Wire.begin();
  Serial.begin(115200);
  BH1750_Init(BH1750address);
  delay(200);
}

void loop()
{
  int LX = 0;
  if (2 == BH1750_Read(BH1750address))
  {
    LX = ((buff[0] << 8) | buff[1]) / 1.2; //光照强度(单位lx)=(High Byte  + Low Byte)/ 1.2
    Serial.print(LX, DEC);                 //十进制
    Serial.println("[lx]");
  }
  delay(1000);
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在本教程中,我将向您展示如何制作基于Arduino的MPPT充电控制器 什么是Mppt(最大功率点跟踪)? 我们使用MPPT算法在某些条件下从光伏模块中提取最大可用功率。MPPT是一种最受欢迎的工具,可帮助我们以有效的方式使用太阳能(可再生能源)。如果我们想要减少碳足迹图,那么我们必须转向清洁能源,这就是所谓的可再生能源(能源,我们可以从自然资源获得),如SOLAR,HYDRO,WIND等,否则我们将直接走向全球变暖。 每个国家都需要走向绿色能源,尤其是中国,因为它是生产63%二氧化碳的主要贡献者。 MPPT如何运作? 为什么150W太阳能电池板不等于150瓦? 例如,你从市场上买了一个可以提供7安培电流的新太阳能电池板,在充电时电池的设置配置为12伏:7安培乘12伏= 84瓦(P = V * I)你输了66瓦特 - 但你付了150瓦特。那66瓦特不会去任何地方,但是由于太阳能输出电流和电池电压的不匹配。 使用MPPT算法后,我们可以获得最大可用功率电池现在12伏时12伏输出功率等于p = V * I p = 12 * 12 = 144w现在你仍然有近144瓦,每个人都很高兴。 项目规格: 2. LED指示显示低中高级别的充电状态 3. LCD(20x4字符)显示屏,用于显示电源,电流,电压等 4.雷电/过压保护 5.保护逆流功率 6.过载和短路保护 7.通过WiFi记录数据 8.充电你的手机,通过USB端口平板电脑任何小工具 电气规格: 1.额定电压= 12V 2.最大输入电流= 5A 3.负载电流支持最高= 10A 4.输入电压=太阳能电池板12至24V 5.太阳能电池板的功率= 50瓦 基于Arduino的MPPT算法充电控制器模型:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值