Arduino
TM1638
Voltímetro y Amperímetro
xsetaseta@gmail.com
/* xsetaseta@gmail.com Juan Galaz 8/SEP/2017 */ #include <TM1638.h> //data(I/O) pin 8, clock(CLK) pin 9 , strobe(STB) pin 7 TM1638 module(8, 9, 7); #define ENTRADA1 A0 #define ENTRADA2 A1 char cadena[50]; unsigned int vv1,vv2,test3v3; #define RESISTENCIA 18 void setup() { //Serial.begin(9600); pinMode(ENTRADA1, INPUT); pinMode(ENTRADA2, INPUT); pinMode(A7, INPUT); //intensidad al minimo module.setupDisplay(1,0); module.setDisplayToString("vol ",0,0); delay(500); //toma la referencia de 3.3V test3v3=analogRead10(A7); } void loop() { byte keys; long voltios1,voltios2; unsigned int z1,z2; vv1=analogRead10(ENTRADA1); delay(150); vv2=analogRead10(ENTRADA2); delay(150); voltios1=vv1*33; voltios1*=10; voltios1/=test3v3; voltios2=vv2*33; voltios2*=1000; voltios2/=test3v3; z1=voltios1; //Voltios z2=voltios2/RESISTENCIA; //intensidad sprintf(cadena,"%03du%03di",z1,z2); module.setDisplayToString(cadena,0,0); module.setDisplayDigit(cadena[0]-48,0,1); module.setDisplayDigit(cadena[5]-48,5,1); /* Serial.println(cadena); sprintf(cadena,"vv1=%05d vv2=%05d test=%05d mA*10=%d ",vv1,vv2,test3v3,voltios2/RESISTENCIA); Serial.println(cadena); */ } //lectura de 10 medidas y hace la media int analogRead10(int entrada) { int z,v; for(z=0,v=0;z<10;z++)v+=analogRead(entrada); v/=10; return(v); } |