Hi guys, I need ur help btw.
Well, im trying to connecting 3 current sensors SCT - 013 (Wemos D1 microcontroller) with the multiplexer (74hc4051) option and send the data to Blynk. i’ve search to internet so i find this method. the current sensor SCT-013 program need the analog input (A0*example) for calculate the current. but if we using the multiplexer i confused what we use for input. fyi in my progress i have done connect one current sensors from multiplexer
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include "EmonLib.h"
char auth[] = "19e3********************";
char ssid[] = "";
char pass[] = "";
int s0 = D7;
int s1 = D6;
int s2 = D5;
int analogPin = 0;
int nilaiInput = 0;
EnergyMonitor emon1;
EnergyMonitor emon2;
EnergyMonitor emon3;
void setup() {
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
emon1.current(0,25); \\ my problem is in this part, this should be analog input pin, but if we use multiplexer what we called it? if we use the (0) pin from multiplexer for example
emon2.current(1,25); \\ also this
emon3.current(2,25); \\ also this
}
void loop() {
inputMultiplekser(0);
nilaiInput = analogRead(analogPin);
inputMultiplekser(1);
nilaiInput = analogRead(analogPin);
inputMultiplekser(2);
nilaiInput = analogRead(analogPin);
float Irms1 = emon1.calcIrms(1480);
float Irms2 = emon2.calcIrms(1480);
float Irms3 = emon3.calcIrms(1480);
{if (Irms1 < 0.020)Irms1 = 0;}
{if (Irms2 < 0.020)Irms2 = 0;}
{if (Irms3 < 0.020)Irms3 = 0;}
Serial.print("Arus R : ");
Serial.print(Irms1);
Serial.print(" A . ");
Serial.print("Arus S : ");
Serial.print(Irms2);
Serial.print(" A . ");
Serial.print("Arus T : ");
Serial.print(Irms3);
Serial.print(" A \n")
delay(100);
}
void inputMultiplekser(int y){
if (y==0){
digitalWrite(s0,LOW);
digitalWrite(s1,LOW);
digitalWrite(s2,LOW);
}
else if (y==1){
digitalWrite(s0,HIGH);
digitalWrite(s1,LOW);
digitalWrite(s2,LOW);
}
else if (y==2){
digitalWrite(s0,LOW);
digitalWrite(s1,HIGH);
digitalWrite(s2,LOW);
}
else if (y==3){
digitalWrite(s0,HIGH);
digitalWrite(s1,HIGH);
digitalWrite(s2,LOW);
}
else if (y==4){
digitalWrite(s0,LOW);
digitalWrite(s1,LOW);
digitalWrite(s2,HIGH);
}
else if (y==5){
digitalWrite(s0,HIGH);
digitalWrite(s1,LOW);
digitalWrite(s2,HIGH);
}
else if (y==6){
digitalWrite(s0,LOW);
digitalWrite(s1,HIGH);
digitalWrite(s2,HIGH);
}
else if (y==7){
digitalWrite(s0,HIGH);
digitalWrite(s1,HIGH);
digitalWrite(s2,HIGH);
}
//jika input bukan 0-7, maka jadikan y0
else {
digitalWrite(s0,LOW);
digitalWrite(s1,LOW);
digitalWrite(s2,LOW);
}
}
really really need your help. Thanks.