//www.seeedstudio.com/wiki/Grove_-_Electricity_Sensor
Esse é código montado por mim , anexei o arquivo com o nome ACS712_GrooveA
http://pastebin.com/8sAQXe6Y
Vejam os resultados aferidos com teste com lampadas incandescentes e um ferro de passar :
Percebam que apenas um bit de diferença na leitura da tensão, faz uma grande diferença na corrente.
Acho que será preciso blindar o cabo que liga o sensor ao Arduino !!
Medições com ACS712-30A
dia 15/ago/2015
Medições Multimetro Fluke 17B+
Tensão REDE = 129,7 Vca (medida)
VCC = 5000 mV / 1024 = 4,8828125
ACS712-30A - Coeficiente estimado = 65,8 mV / A
===========================================
Medição sem carga
Medicao Maxima = 512Tensao de Pico = 2500 mVVmax ACS712 = 0 mVV RMS ACS712 = 0 mVI RMS ACS712 = 0.000 A
===========================================
Lampada Phillips 127 V - 60 W - I Medido = 0,472 A
Medicao Maxima = 520Tensao de Pico = 2539 mVVmax ACS712 = 39 mVV RMS ACS712 = 28 mVI RMS ACS712 = 0.420 A
Medicao Maxima = 521Tensao de Pico = 2544 mVVmax ACS712 = 44 mVV RMS ACS712 = 31 mVI RMS ACS712 = 0.472 A >>> Que beleza !!!
======================================================
Lampada GE 127 V - 40 W - I Medido = 0,326 A
Medicao Maxima = 518Tensao de Pico = 2529 mVVmax ACS712 = 29 mVV RMS ACS712 = 21 mVI RMS ACS712 = 0.315 A
Medicao Maxima = 517Tensao de Pico = 2524 mVVmax ACS712 = 24 mVV RMS ACS712 = 17 mVI RMS ACS712 = 0.262 A
======================================================
Lampada GE 220 V - 50 W - I medido = 0,166 A
Medicao Maxima = 515Tensao de Pico = 2515 mVVmax ACS712 = 15 mVV RMS ACS712 = 10 mVI RMS ACS712 = 0.157 A
=======================================================
Ferro de passar Arno 127 V - 1100 W
I = 1100 / 127 = 8,661 A
Medicao Maxima = 675Tensao de Pico = 3296 mVVmax ACS712 = 796 mVV RMS ACS712 = 563 mVI RMS ACS712 = 8.553 A
Medicao Maxima = 674Tensao de Pico = 3291 mVVmax ACS712 = 791 mVV RMS ACS712 = 559 mVI RMS ACS712 = 8.500 A…
lizado a garra robotica MKII com mais quatroservo motores na base do braco)os servos motores se moveram simultaneamente(um led Ficara Piscando em todo o processo de movimentacao dos servo Motores).
Localizando a latinha na frente de dois pistoes,os servos iram colocar a latinha no compatimento para ser esmagada e recuar ,Logo em seguida um pistao sera acionado esmagando a latinha depois ele ira recuar e o outro pistao sera acionado expusando a latinha para a esteira,depois ele ira recuar(um Buzzer vai ficar emitindo sons em todo momento neste processo).
Depois da latinha na esteira sera acionado dois motores(controlando a velocidade por Potenciometro) E depois de 30s a esteira ira desligar.
Os servos e o motor de passo ira retornar para o local de origem.
Possibilitando assim um novo processo.
Galera Oq eu conssegui fazer esta aqui se puderem me deem uma forcinha ai por favor.
Desde ja agradeco a todos.
#include <Servo.h>
Servo myservo;Servo myservo1;Servo myservo2;Servo myservo3;
int Motor = 50;int Led = 31;
int buzzer = 28;int Potenciometer_Motor = A0;
int acionamento_pistao1 = 2; int acionamento_pistao2 = 3; int recuo_pistao1 = 4; int recuo_pistao2 = 5;
int botton = 6; // escolha o pino de entrada (para o interruptor)int val = 0; // variável para ler o estado do interruptor
void setup() { myservo.attach(7); myservo1.attach(8); myservo2.attach(9); myservo3.attach(10); pinMode(acionamento_pistao1, OUTPUT); pinMode(acionamento_pistao2, OUTPUT);
pinMode(recuo_pistao1, OUTPUT); pinMode(recuo_pistao2, OUTPUT);
digitalWrite(recuo_pistao1, HIGH); digitalWrite(recuo_pistao2, HIGH);
pinMode(botton,INPUT); pinMode(buzzer, OUTPUT);
myservo.write(0); myservo1.write(0); myservo2.write(0); myservo3.write(0); }
void loop(){ val = digitalRead(botton); // ler o valor de entrada if (val == HIGH) { // verificar se a entrada é HIGH (interruptor livre) myservo.write(180); delay(50); myservo1.write(180); delay(50); myservo2.write(180); delay(50); myservo3.write(180); //Motor da Base delay(50);
//Acionamento dos Pistoes
tone(buzzer,1500);//Ligando o buzzer. delay(500);
digitalWrite(acionamento_pistao1, HIGH); delay(10000); digitalWrite(recuo_pistao1, HIGH); delay(10000); digitalWrite(acionamento_pistao2, HIGH); delay(10000); digitalWrite(recuo_pistao2, HIGH);
noTone(buzzer);//Desligando o buzzer. delay(500);
//Acionando Esterira
digitalWrite(Led, HIGH); delay(1000); digitalWrite(Led, LOW); delay(1000);
val = analogRead(Potenciometer_Motor);
analogWrite(Motor, val / 4); delay(20000); digitalWrite(Motor,LOW);
//Retorno dos Servo Motores myservo.write(0); myservo1.write(0); myservo2.write(0); myservo3.write(0);
} else{ myservo.write(0); myservo1.write(0); myservo2.write(0);
} }
…
Adicionado por Gleison Frota ao 18:10 em 31 março 2016
ternando.
A ideia é que cada chave acione sua respectiva saída sem causar interferência, alguém já passou por isso e tem uma ideia para me ajudar?
Grato pelo apoio!
//Saídas int E0 = 2;
int E1 = 3;
int E2 = 4;
int E3 = 5;
int E4 = 6;
int E5 = 7;
int E6 = 8;
int E7 = 9;
int E8 = 10;
int E9 = 11;
int E10 = 12;
int E11 = 13;
int E12 = 14;
int E13 = 15;
int E14 = 16;
int E15 = 17;
//Entradas const int S1 = 20;
const int S2 = 21;
const int S3 = 22;
const int S4 = 23;
const int S5 = 24;
const int S6 = 25;
const int S7 = 26;
const int S8 = 27;
const int S9 = 28;
const int S10 = 29;
const int S11 = 30;
const int S12 = 31;
const int S13 = 32;
const int S14 = 33;
const int S15 = 34;
const int S16 = 35;
int dado; //variável que receberá os dados da porta serial
//Ajuste de Debounce "S1" const long DEBOUNCE_DELAY0 = 100;
int leitura_anterior0 = 1;
int leitura_anterior_db0 = 1;
long time_ultimo_debounce0 = 0;
int debounce_0 = 1;
//Ajuste de Debounce "S2" const long DEBOUNCE_DELAY1 = 100;
int leitura_anterior1 = 1;
int leitura_anterior_db1 = 1;
long time_ultimo_debounce1 = 0;
int debounce_1 = 1;
//Ajuste de Debounce "S3" const long DEBOUNCE_DELAY2 = 100;
int leitura_anterior2 = 1;
int leitura_anterior_db2 = 1;
long time_ultimo_debounce2 = 0;
int debounce_2 = 1;
//Ajuste de Debounce "S4" const long DEBOUNCE_DELAY3 = 100;
int leitura_anterior3 = 1;
int leitura_anterior_db3 = 1;
long time_ultimo_debounce3 = 0;
int debounce_3 = 1;
void setup(){ Serial.begin(9600);//frequência da porta serial
//Saídas
pinMode(E0,OUTPUT);
pinMode(E1,OUTPUT);
pinMode(E2,OUTPUT);
pinMode(E3,OUTPUT);
pinMode(E4,OUTPUT);
pinMode(E5,OUTPUT);
pinMode(E6,OUTPUT);
pinMode(E7,OUTPUT);
pinMode(E8,OUTPUT);
pinMode(E9,OUTPUT);
pinMode(E10,OUTPUT);
pinMode(E11,OUTPUT);
pinMode(E12,OUTPUT);
pinMode(E13,OUTPUT);
pinMode(E14,OUTPUT);
pinMode(E15,OUTPUT);
//Entradas
pinMode(S1,INPUT);
pinMode(S2,INPUT);
pinMode(S3,INPUT);
pinMode(S4,INPUT);
pinMode(S5,INPUT);
pinMode(S6,INPUT);
pinMode(S7,INPUT);
pinMode(S8,INPUT);
pinMode(S9,INPUT);
pinMode(S10,INPUT);
pinMode(S11,INPUT);
pinMode(S12,INPUT);
pinMode(S13,INPUT);
pinMode(S14,INPUT);
pinMode(S15,INPUT);
pinMode(S16,INPUT);
}
void loop(){
botao_0(); }
void botao_0(){
int leitura_atual0 = digitalRead(S1);
if (leitura_atual0 != leitura_anterior0 ) { time_ultimo_debounce0 = millis(); debounce_0 = 0; }
if ( (millis() - time_ultimo_debounce0) > DEBOUNCE_DELAY0 ) { debounce_0 = 1; }
if (debounce_0 = 1){ if (leitura_atual0 == 0 && leitura_anterior_db0 == 1){ digitalWrite(E0, !digitalRead(E0)); }
leitura_anterior_db0 = leitura_atual0; }
leitura_anterior0 = leitura_atual0;
botao_1(); }
void botao_1(){
int leitura_atual1 = digitalRead(S2);
if (leitura_atual1 != leitura_anterior1 ) { time_ultimo_debounce1 = millis(); debounce_1 = 0; }
if ( (millis() - time_ultimo_debounce1) > DEBOUNCE_DELAY1 ) { debounce_1 = 0; }
if (debounce_1 = 1){ if (leitura_atual1 == 0 && leitura_anterior_db1 == 1){ digitalWrite(E1, !digitalRead(E1)); }
leitura_anterior_db1 = leitura_atual1; }
leitura_anterior1 = leitura_atual1;
botao_2(); }
void botao_2(){
int leitura_atual2 = digitalRead(S3);
if (leitura_atual2 != leitura_anterior2 ) { time_ultimo_debounce2 = millis(); debounce_2 = 0; }
if ( (millis() - time_ultimo_debounce2) > DEBOUNCE_DELAY2 ) { debounce_2 = 0; }
if (debounce_2 = 1){ if (leitura_atual2 == 0 && leitura_anterior_db2 == 1){ digitalWrite(E2, !digitalRead(E2)); }
leitura_anterior_db2 = leitura_atual2; }
leitura_anterior2 = leitura_atual2;
botao_3(); }
void botao_3(){
int leitura_atual3 = digitalRead(S4);
if (leitura_atual3 != leitura_anterior3 ) { time_ultimo_debounce3 = millis(); debounce_3 = 0; }
if ( (millis() - time_ultimo_debounce3) > DEBOUNCE_DELAY3 ) { debounce_3 = 0; }
if (debounce_3 = 1){ if (leitura_atual3 == 0 && leitura_anterior_db3 == 1){ digitalWrite(E3, !digitalRead(E3)); }
leitura_anterior_db3 = leitura_atual3; }
leitura_anterior3 = leitura_atual3;
delay(10); if(Serial.available() > 0){ //verifica se existe comunicação com a porta serial
dado = Serial.read();//lê os dados da porta serial
switch(dado){
case 1:
digitalWrite(E0,HIGH);
break;
case 2:
digitalWrite(E0,LOW);
break;
case 3: digitalWrite(E1,HIGH);
break;
case 4:
digitalWrite(E1,LOW);
break;
case 5: digitalWrite(E2,HIGH);
break;
case 6:
digitalWrite(E2,LOW);
break;
case 7: digitalWrite(E3,HIGH);
break;
case 8:
digitalWrite(E3,LOW);
break;
case 9: digitalWrite(E4,HIGH);
break;
case 10:
digitalWrite(E4,LOW);
break;
case 11: digitalWrite(E5,HIGH);
break;
case 12:
digitalWrite(E5,LOW);
break;
case 13: digitalWrite(E6,HIGH);
break;
case 14:
digitalWrite(E6,LOW);
break;
case 15: digitalWrite(E7,HIGH);
break;
case 16:
digitalWrite(E7,LOW);
break;
case 17: digitalWrite(E8,HIGH);
break;
case 18:
digitalWrite(E8,LOW);
break;
case 19: digitalWrite(E9,HIGH);
break;
case 20:
digitalWrite(E9,LOW);
break;
case 21: digitalWrite(E10,HIGH);
break;
case 22:
digitalWrite(E10,LOW);
break;
case 23: digitalWrite(E11,HIGH);
break;
case 24:
digitalWrite(E11,LOW);
break;
case 25: digitalWrite(E12,HIGH);
break;
case 26:
digitalWrite(E12,LOW);
break;
case 27: digitalWrite(E13,HIGH);
break;
case 28:
digitalWrite(E13,LOW);
break;
case 29: digitalWrite(E14,HIGH);
break;
case 30:
digitalWrite(E14,LOW);
break;
case 31: digitalWrite(E15,HIGH);
break;
case 32:
digitalWrite(E15,LOW);
break;
case 33: digitalWrite(E0,HIGH);
digitalWrite(E1,HIGH);
digitalWrite(E2,HIGH);
digitalWrite(E3,HIGH);
digitalWrite(E4,HIGH);
digitalWrite(E5,HIGH);
digitalWrite(E6,HIGH);
digitalWrite(E7,HIGH);
digitalWrite(E8,HIGH);
digitalWrite(E9,HIGH);
digitalWrite(E10,HIGH);
digitalWrite(E11,HIGH);
digitalWrite(E12,HIGH);
digitalWrite(E13,HIGH);
digitalWrite(E14,HIGH);
digitalWrite(E15,HIGH);
break; case 34:
digitalWrite(E0,LOW);
digitalWrite(E1,LOW);
digitalWrite(E2,LOW);
digitalWrite(E3,LOW);
digitalWrite(E4,LOW);
digitalWrite(E5,LOW);
digitalWrite(E6,LOW);
digitalWrite(E7,LOW);
digitalWrite(E8,LOW);
digitalWrite(E9,LOW);
digitalWrite(E10,LOW);
digitalWrite(E11,LOW);
digitalWrite(E12,LOW);
digitalWrite(E13,LOW);
digitalWrite(E14,LOW);
digitalWrite(E15,LOW);
break;
} }
}…
ezes desliga uma e liga a outra com o acionamento de uma unica chave, o que deveria cada chave acionar sua respectiva saída como acontece na S1 e S2 que estão funcionando corretamente. outro comportamento que começou a ocorrer foi depois que adicionei a programação do Debounce delay para as chaves S3 e S4 fazendo as saídas E2 e E3 iniciarem já acionadas, Alguém já passou por isso e pode me dar uma dica! Abraço a todos !!!
//Saídas int E0 = 2;
int E1 = 3;
int E2 = 4;
int E3 = 5;
int E4 = 6;
int E5 = 7;
int E6 = 8;
int E7 = 9;
int E8 = 10;
int E9 = 11;
int E10 = 12;
int E11 = 13;
int E12 = 14;
int E13 = 15;
int E14 = 16;
int E15 = 17;
//Entradas
const int S1 = 20;
const int S2 = 21;
const int S3 = 22;
const int S4 = 23;
const int S5 = 24;
const int S6 = 25;
const int S7 = 26;
const int S8 = 27;
const int S9 = 28;
const int S10 = 29;
const int S11 = 30;
const int S12 = 31;
const int S13 = 32;
const int S14 = 33;
const int S15 = 34;
const int S16 = 35;
int dado; //variável que receberá os dados da porta serial
//Ajuste de Debounce "S1"
const long DEBOUNCE_DELAY0 = 100;
int leitura_anterior0 = 1;
int leitura_anterior_db0 = 1;
long time_ultimo_debounce0 = 0;
int debounce_0 = 1;
//Ajuste de Debounce "S2"
const long DEBOUNCE_DELAY1 = 100;
int leitura_anterior1 = 1;
int leitura_anterior_db1 = 1;
long time_ultimo_debounce1 = 0;
int debounce_1 = 1;
//Ajuste de Debounce "S3"
const long DEBOUNCE_DELAY2 = 100;
int leitura_anterior2 = 1;
int leitura_anterior_db2 = 1;
long time_ultimo_debounce2 = 0;
int debounce_2 = 1;
//Ajuste de Debounce "S4"
const long DEBOUNCE_DELAY3 = 100;
int leitura_anterior3 = 1;
int leitura_anterior_db3 = 1;
long time_ultimo_debounce3 = 0;
int debounce_3 = 1;
void setup(){ Serial.begin(9600);//frequência da porta serial
//Saídas
pinMode(E0,OUTPUT);
pinMode(E1,OUTPUT);
pinMode(E2,OUTPUT);
pinMode(E3,OUTPUT);
pinMode(E4,OUTPUT);
pinMode(E5,OUTPUT);
pinMode(E6,OUTPUT);
pinMode(E7,OUTPUT);
pinMode(E8,OUTPUT);
pinMode(E9,OUTPUT);
pinMode(E10,OUTPUT);
pinMode(E11,OUTPUT);
pinMode(E12,OUTPUT);
pinMode(E13,OUTPUT);
pinMode(E14,OUTPUT);
pinMode(E15,OUTPUT);
//Entradas
pinMode(S1,INPUT);
pinMode(S2,INPUT);
pinMode(S3,INPUT);
pinMode(S4,INPUT);
pinMode(S5,INPUT);
pinMode(S6,INPUT);
pinMode(S7,INPUT);
pinMode(S8,INPUT);
pinMode(S9,INPUT);
pinMode(S10,INPUT);
pinMode(S11,INPUT);
pinMode(S12,INPUT);
pinMode(S13,INPUT);
pinMode(S14,INPUT);
pinMode(S15,INPUT);
pinMode(S16,INPUT);
}
void loop(){
botao_0(); }
void botao_0(){
int leitura_atual0 = digitalRead(S1);
if (leitura_atual0 != leitura_anterior0 ) { time_ultimo_debounce0 = millis(); debounce_0 = 0; }
if ( (millis() - time_ultimo_debounce0) > DEBOUNCE_DELAY0 ) { debounce_0 = 1; }
if (debounce_0 = 1){ if (leitura_atual0 == 0 && leitura_anterior_db0 == 1){ digitalWrite(E0, !digitalRead(E0)); }
leitura_anterior_db0 = leitura_atual0; }
leitura_anterior0 = leitura_atual0;
botao_1();
}
void botao_1(){
int leitura_atual1 = digitalRead(S2);
if (leitura_atual1 != leitura_anterior1 ) { time_ultimo_debounce1 = millis(); debounce_1 = 0; }
if ( (millis() - time_ultimo_debounce1) > DEBOUNCE_DELAY1 ) { debounce_1 = 0; }
if (debounce_1 = 1){ if (leitura_atual1 == 0 && leitura_anterior_db1 == 1){ digitalWrite(E1, !digitalRead(E1)); }
leitura_anterior_db1 = leitura_atual1; }
leitura_anterior1 = leitura_atual1;
botao_2();
}
void botao_2(){
int leitura_atual2 = digitalRead(S3);
if (leitura_atual2 != leitura_anterior2 ) { time_ultimo_debounce2 = millis(); debounce_2 = 0; }
if ( (millis() - time_ultimo_debounce2) > DEBOUNCE_DELAY2 ) { debounce_2 = 0; }
if (debounce_2 = 1){ if (leitura_atual2 == 0 && leitura_anterior_db2 == 1){ digitalWrite(E2, !digitalRead(E2)); }
leitura_anterior_db2 = leitura_atual2; }
leitura_anterior2 = leitura_atual2;
botao_3();
}
void botao_3(){
int leitura_atual3 = digitalRead(S4);
if (leitura_atual3 != leitura_anterior3 ) { time_ultimo_debounce3 = millis(); debounce_3 = 0; }
if ( (millis() - time_ultimo_debounce3) > DEBOUNCE_DELAY3 ) { debounce_3 = 0; }
if (debounce_3 = 1){ if (leitura_atual3 == 0 && leitura_anterior_db3 == 1){ digitalWrite(E3, !digitalRead(E3)); }
leitura_anterior_db3 = leitura_atual3; }
leitura_anterior3 = leitura_atual3;
delay(10);
if(Serial.available() > 0){ //verifica se existe comunicação com a porta serial
dado = Serial.read();//lê os dados da porta serial
switch(dado){
case 1:
digitalWrite(E0,HIGH);
break;
case 2:
digitalWrite(E0,LOW);
break;
case 3: digitalWrite(E1,HIGH);
break;
case 4:
digitalWrite(E1,LOW);
break;
case 5:
digitalWrite(E2,HIGH);
break;
case 6:
digitalWrite(E2,LOW);
break;
case 7:
digitalWrite(E3,HIGH);
break;
case 8:
digitalWrite(E3,LOW);
break;
case 9:
digitalWrite(E4,HIGH);
break;
case 10:
digitalWrite(E4,LOW);
break;
case 11:
digitalWrite(E5,HIGH);
break;
case 12:
digitalWrite(E5,LOW);
break;
case 13:
digitalWrite(E6,HIGH);
break;
case 14:
digitalWrite(E6,LOW);
break;
case 15:
digitalWrite(E7,HIGH);
break;
case 16:
digitalWrite(E7,LOW);
break;
case 17:
digitalWrite(E8,HIGH);
break;
case 18:
digitalWrite(E8,LOW);
break;
case 19:
digitalWrite(E9,HIGH);
break;
case 20:
digitalWrite(E9,LOW);
break;
case 21:
digitalWrite(E10,HIGH);
break;
case 22:
digitalWrite(E10,LOW);
break;
case 23:
digitalWrite(E11,HIGH);
break;
case 24:
digitalWrite(E11,LOW);
break;
case 25:
digitalWrite(E12,HIGH);
break;
case 26:
digitalWrite(E12,LOW);
break;
case 27:
digitalWrite(E13,HIGH);
break;
case 28:
digitalWrite(E13,LOW);
break;
case 29:
digitalWrite(E14,HIGH);
break;
case 30:
digitalWrite(E14,LOW);
break;
case 31:
digitalWrite(E15,HIGH);
break;
case 32:
digitalWrite(E15,LOW);
break;
case 33: digitalWrite(E0,HIGH);
digitalWrite(E1,HIGH);
digitalWrite(E2,HIGH);
digitalWrite(E3,HIGH);
digitalWrite(E4,HIGH);
digitalWrite(E5,HIGH);
digitalWrite(E6,HIGH);
digitalWrite(E7,HIGH);
digitalWrite(E8,HIGH);
digitalWrite(E9,HIGH);
digitalWrite(E10,HIGH);
digitalWrite(E11,HIGH);
digitalWrite(E12,HIGH);
digitalWrite(E13,HIGH);
digitalWrite(E14,HIGH);
digitalWrite(E15,HIGH);
break; case 34:
digitalWrite(E0,LOW);
digitalWrite(E1,LOW);
digitalWrite(E2,LOW);
digitalWrite(E3,LOW);
digitalWrite(E4,LOW);
digitalWrite(E5,LOW);
digitalWrite(E6,LOW);
digitalWrite(E7,LOW);
digitalWrite(E8,LOW);
digitalWrite(E9,LOW);
digitalWrite(E10,LOW);
digitalWrite(E11,LOW);
digitalWrite(E12,LOW);
digitalWrite(E13,LOW);
digitalWrite(E14,LOW);
digitalWrite(E15,LOW);
break;
} }
}…
m C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/Device/ATMEL/sam3xa/include/sam3x8e.h:260:0, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/Device/ATMEL/sam3xa/include/sam3xa.h:44, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/Device/ATMEL/sam3.h:59, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/Device/ATMEL/sam.h:198, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/libsam/include/../chip.h:25, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/libsam/include/twi.h:44, from C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:25, from sketch_nov11a.ino:5:C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/CMSIS/Include/core_cm3.h:868:46: error: expected ')' before '*' token #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ ^sketch_nov11a.ino:6:11: note: in expansion of macro 'MPU'C:\Program Files (x86)\Arduino\hardware\arduino\sam\system/CMSIS/CMSIS/Include/core_cm3.h:868:46: error: expected ')' before '*' token #define MPU ((MPU_Type *) MPU_BASE ) /*!< Memory Protection Unit */ ^sketch_nov11a.ino:6:11: note: in expansion of macro 'MPU'sketch_nov11a.ino: In function 'void setup()':sketch_nov11a.ino:10:29: error: call of overloaded 'beginTransmission(MPU_Type*)' is ambiguoussketch_nov11a.ino:10:29: note: candidates are:In file included from sketch_nov11a.ino:5:0:C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:39:7: note: void TwoWire::beginTransmission(uint8_t) <near match> void beginTransmission(uint8_t); ^C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:39:7: note: no known conversion for argument 1 from 'MPU_Type*' to 'uint8_t {aka unsigned char}'C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:40:7: note: void TwoWire::beginTransmission(int) <near match> void beginTransmission(int); ^C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:40:7: note: no known conversion for argument 1 from 'MPU_Type*' to 'int'sketch_nov11a.ino: In function 'void loop()':sketch_nov11a.ino:17:29: error: call of overloaded 'beginTransmission(MPU_Type*)' is ambiguoussketch_nov11a.ino:17:29: note: candidates are:In file included from sketch_nov11a.ino:5:0:C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:39:7: note: void TwoWire::beginTransmission(uint8_t) <near match> void beginTransmission(uint8_t); ^C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:39:7: note: no known conversion for argument 1 from 'MPU_Type*' to 'uint8_t {aka unsigned char}'C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:40:7: note: void TwoWire::beginTransmission(int) <near match> void beginTransmission(int); ^C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:40:7: note: no known conversion for argument 1 from 'MPU_Type*' to 'int'sketch_nov11a.ino:20:31: error: invalid conversion from 'MPU_Type*' to 'int' [-fpermissive]In file included from sketch_nov11a.ino:5:0:C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\Wire/Wire.h:46:13: error: initializing argument 1 of 'uint8_t TwoWire::requestFrom(int, int, int)' [-fpermissive] uint8_t requestFrom(int, int, int); ^Erro compilando.…
sso toda interface que for conectada no módulo não pode ultrapassar o nível de tensão de 3,3V - isso é muito importante pois, por exemplo, se conectar uma interface de 5V você queimará o seu chip !
Segundo as especificações do fabricante , a corrente máxima que um pino de saída (output) pode fornecer é de 12mA.Como precação sugiro não ultrapassar os 10 mA. Isto é, se ligar um Led (dependendo do consumo do Led), poderá danificar o chip também. Muito cuidado com o uso dos pinos de saida e entrada (GPIO_XX).
Link do Datasheet do Chip ESP8266EX:
https://www.adafruit.com/images/product-files/2471/0A-ESP8266__Data...
CHIP ESP8266EX ESP8266EX pinagem
Esses são os pinos de alimentação do Chip ESP8266EX.
Nos módulos ESP8266, esse pinos já estão devidamente conectados.
1) VDDA - Alimentação do circuito analógico +3,3V
3) VDDP3 - Alimentação do Amplificador de potência de RF +3,3V (esses pinos 3 e 4 são soldados juntos)
4) VDDP3 - Alimentação do Amplificador de potência de RF +3,3V
5) VDD_RTC - o datasheet informa = sem conexão
6) TOUT - Pino de medição do conversor analógico digital ADC - máximo 3,3V
11) VDDPST - fonte de alimentação do Digital I/O (1,8V~3,3V)
17) VDDPST - fonte de alimentação do Digital I/O (1,8V~3,3V)
29) VDDD - Alimentação do circuito analógico +3,3V (deve ser Digital e não analógico)
30) VDDA - Alimentação do circuito analógico +3,3V
31) RES12K - conexão de um resistor de 12K ohms ao terra
33) GND - terra
Essa tabela copiada do Datasheet do ESP8266EX demonstra o consumo de corrente nos vários modos de operação:
1) Modem-Sleep : nesse modo, o modem WIFI é desligado, mas a conexão WIFI é mantida sem a transmissão de dados.
2) Light-sleep : A CPU pode estar suspensa em aplicações como Switch de WIFI. Sem a transmissão de dados, o modem WIFI pode ser desligado e a CPU suspendida para economizar energia.
3) Deep-Sleep : Não precisa de conexão WIFI para ser mantido. Pode ser usado em aplicações com grande intervalo de tempo entre as transmissões.
…