Resultados da busca - %E5%8D%8E%E5%AE%87%E5%BD%A9%E7%A5%A8%E6%9C%89%E6%89%98%E5%90%97%E3%80%90%E2%94%8B%E7%A8%B3%E5%AE%9A2%E2%92%8F7%E2%92%8F01705%E2%94%8B%E6%89%A3%E3%80%93%E3%80%91
cas Auxiliares ---#include <LiquidCrystal.h> //Biblioteca para o display LCD
// --- Mapeamento de Hardware ---#define butUp 10 //Botão para selecionar tela acima no digital 12//#define butDown 11 //Botão para selecionar tela abaixo no digital 11#define butP 9 //Botão de ajuste mais no digital 10#define butM 8 //Botão de ajuste menos no digital 9#define Lamp1 A0 //Saída para lâmpada 1 no A0 (será usado como digital)#define Lamp2 A1 //Saída para lâmpada 2 no A1 (será usado como digital)#define sensor A3 //define o pino do sensor (que será usado para ler o sensor)
const int sensoragua = 2; //ler sinal do sensor Temperaturafloat valorsensor = 0.0;float ValorTempMax = -150,ValorTempMin = 300; //valor ue vai receber int val= 0;
// --- Protótipo das Funções Auxiliares ---void changeMenu(); //Função para modificar o menu atualvoid dispMenu(); //Função para mostrar o menu atualvoid sonda_lambda(); //Função do menu1, data e horavoid temperatura_agua(); //Função do menu2, temperaturavoid lights(); //Função do menu3, acionamento de lampadasvoid temperatura_ar(); //Função do menu4
// --- Variáveis Globais ---char menu = 0x01; //Variável para selecionar o menuchar set1 = 0x00, set2 = 0x00; //Controle das lâmpadasboolean t_butUp, t_butDown, t_butP, t_butM; //Flags para armazenar o estado dos botõesconst int valorsensoragua = 0;// --- Hardware do LCD ---LiquidCrystal disp(12, //RS no digital 7 11, //EN no digital 6 5, //D4 no digital 5 4, //D5 no digital 4 3, //D6 no digital 3 2); //D7 no digital 2
// --- Configurações Iniciais ---void setup(){ disp.begin(16,2); //Inicializa LCD 16 x 2 for(char i=7; i<10; i++) pinMode(i, INPUT_PULLUP); //Entrada para os botões (digitais 9 a 12) com pull-ups internos pinMode(Lamp1, OUTPUT); //Configura saída para lâmpada 1 pinMode(Lamp2, OUTPUT); //Configura saída para lâmpara 2 t_butUp = 0x00; //limpa flag do botão Up //t_butDown = 0x00; //limpa flag do botão Down t_butP = 0x00; //limpa flag do botão P t_butM = 0x00; //limpa flag do botão M digitalWrite(Lamp1, LOW); //Lâmpada 1 inicia apagada digitalWrite(Lamp2, LOW); //Lâmpada 2 inicia apagada
} //end setup
// --- Loop Infinito ---void loop(){ changeMenu(); dispMenu();
} //end loop
// --- Desenvolvimento das Funções Auxiliares ---void changeMenu() //Modifica o menu atual{ if(!digitalRead(butUp)) t_butUp = 0x01; //Botão Up pressionado? Seta flag // if(!digitalRead(butDown)) t_butDown = 0x01; //Botão Down pressionado? Seta flag if(digitalRead(butUp) && t_butUp) //Botão Up solto e flag setada? { //Sim... t_butUp = 0x00; //Limpa flag disp.clear(); //Limpa display menu++; //Incrementa menu if(menu > 0x04) menu = 0x01; //Se menu maior que 4, volta a ser 1 } //end butUp /* if(digitalRead(butDown) && t_butDown) //Botão Down solto e flag setada? { //Sim... t_butDown = 0x00; //Limpa flag disp.clear(); //Limpa display menu--; //Decrementa menu if(menu < 0x01) menu = 0x04; //Se menu menor que 1, volta a ser 4 } //end butDown */
} //end changeMenu
void dispMenu() //Mostra o menu atual{ switch(menu) //Controle da variável menu { case 0x01: //Caso 1 sonda_lambda(); //Chama a função de relógio break; //break case 0x02: //Caso 2 temperatura_agua(); //Chama a função do termômetro break; //break case 0x03: //Caso 3 lights(); //Chama função para acionamento de lâmpadas break; //break case 0x04: //Caso 4 temperatura_ar(); //Chama função para o menu4 break; //break } //end switch menu
} //end dispMenu
void sonda_lambda() //Data e Hora (menu1){ disp.setCursor(2,0); //Posiciona cursor na coluna 1, linha 1 disp.print("Sonda Lambda"); //Imprime mensagem disp.setCursor(6,1); //Posiciona cursor na coluna 1, linha 2 // Desenvolver uma função de data e hora... disp.print("0.89"); //Mostrador (apenas ilustrativo......)
} //end Sonda
void temperatura_agua() //Temperatura (menu2){ val = analogRead(sensoragua); valorsensor = (val * 358.0)/1024; Serial.println(valorsensor);
disp.setCursor(3,0); //Posiciona cursor na coluna 1, linha 1 disp.print("Temp: Agua"); //Imprime mensagem disp.setCursor(0,1); //Posiciona cursor na coluna 2, linha 2
if (valorsensor > ValorTempMax){ ValorTempMax = valorsensor; } disp.setCursor(0,1); disp.print(valorsensor); disp.write(B11011111); //disp.print(" C "); disp.setCursor(11,1); disp.print(ValorTempMax); disp.write(B11011111);
if (valorsensor >= 27)
{ digitalWrite (A3,HIGH); }
else if (valorsensor <= 25 ) { digitalWrite (A3,LOW); }
// Desenvolver uma função de data e hora... //Mostrador (apenas ilustrativo......)
// disp.print(valorsensor); //disp.write(B11011111); //disp.setCursor(11,1);
delay (1000);
} //end temperatura() void lights() //Acionamento de lâmpadas (menu3){ disp.setCursor(0,0); //Posiciona cursor na coluna 1, linha 1 disp.print("Acionar Lampadas"); //Imprime mensagem do menu 3 if(!digitalRead(butP)) t_butP = 0x01; //Botão P pressionado? Seta flag if(!digitalRead(butM)) t_butM = 0x01; //Botão M pressionado? Seta flag if(digitalRead(butP) && t_butP) //Botão P solto e flag setada? { //Sim... t_butP = 0x00; //Limpa flag set1++; //Incrementa set1 if(set1 > 2) set1 = 0x01; //Se maior que 2, volta a ser 1 switch(set1) //Controle do set1 { case 0x01: //Caso 1 disp.setCursor(0,1); //Posiciona cursor na coluna 1, linha 2 disp.print("L1 on "); //Imprime mensagem digitalWrite(Lamp1, HIGH); //Liga lâmpada 1 break; //Break case 0x02: //Caso 2 disp.setCursor(0,1); //Posiciona cursor na coluna 1, linha 2 disp.print("L1 off"); //Imprime mensagem digitalWrite(Lamp1, LOW); //Desliga lâmpada 1 break; //Break } //end switch set1 } //end butP if(digitalRead(butM) && t_butM) //Botão D solto e flag setada? { //Sim... t_butM = 0x00; //Limpa flag set2++; //Incrementa set2 if(set2 > 2) set2 = 0x01; //Se maior que 2, volta a ser 1 switch(set2) //Controle do set2 { case 0x01: //Caso 1 disp.setCursor(8,1); //Posiciona cursor na coluna 8, linha 2 disp.print("L2 on "); //Imprime mensagem digitalWrite(Lamp2, HIGH); //Liga lâmpada 2 break; //Break case 0x02: //Caso 2 disp.setCursor(8,1); //Posiciona cursor na coluna 8, linha 2 disp.print("L2 off"); //Imprime mensagem digitalWrite(Lamp2, LOW); //Liga lâmpada 1 break; //Break } //end switch set1 } //end butM
} //end lights
void temperatura_ar() //Função genérica para um quarto menu...{ disp.setCursor(3,0); //Posiciona cursor na coluna 1, linha 1 disp.print("Temp: AR "); //Imprime mensagem disp.setCursor(4,1); //Posiciona cursor na coluna 8, linha 2 // Desenvolver uma função de data e hora... disp.print("30 graus"); //Créditos
} //end menu4
//pode-se implementar quantos menus quiser //............
Então ele funciona perfeitamente, só que quando mudo o menu (a função para acender o led não funciona).
Quando está acesa ela não apaga e quando está desligada ela não acende, o que ta de errado no codigo ai, vc poderia me umas dicas.
…
OPROTECT,NOBROWNOUT#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7,errors,stream=pc)void verificacao(){ char est1,est2,est3,est4,est5; //Estado da Sala if(!input(pin_b0)) est1 ='Q'; else est1 ='q'; //Estado do Quarto if(!input(pin_b1)) est2 ='Z'; else est2 ='z'; //Estado da Cozinha if(!input(pin_b2)) est3 ='S'; else est3 ='s'; //Estado da Panela if(!input(pin_b3)) est4 ='E'; else est4 ='e'; //Estado do Abajur if(!input(pin_b4)) est5 ='C'; else est5 ='c'; //Imprimindo a Resposta fprintf(pc,"%c%c%c%c%c\n\r",est1,est2,est3,est4,est5); delay_ms(150);}void main (void){ char dir; //variaveis de controle das lampadas int a0,a1,a2,a3,opc; //variaveis de controle dos motores e switch-case //Inicializa��o das Variveis a0=a1=a2=a3=opc=0; while(true){ while(!kbhit()); //aguarda at� que seja recebido um dado na porta serial dir=getc(); //armazena em c o caracter recebido na porta serial //SALA if (dir == 'q') //Liga a Sala opc=1; else if (dir == 'Q') // Desliga a Sala opc=2; //QUARTO if (dir == 'z') //Liga o Quarto opc=3; else if (dir == 'Z') // Desliga o Quarto opc=4; //COZINHA if (dir == 's') //Liga a Cozinha opc=5; else if (dir == 'S') // Desliga a Cozinha opc=6; //PANELA if (dir == 'e') //Liga a Panela opc=7; else if (dir == 'E') // Desliga a Panela opc=8; //Abajur if(dir == 'c') //Liga o Abajur opc=9; else if (dir == 'C') // Desliga o Abajur opc=10; //Tabela de verifica��o else if (dir == 'p') opc=12; switch(opc) { case 1: //Liga SALA output_high(pin_b0); delay_ms(100); verificacao(); break; case 2: //Desliga SALA output_low(pin_b0); delay_ms(100); verificacao(); break; case 3: //Liga Quarto output_high(pin_b1); delay_ms(100); verificacao(); break; case 4: //Desliga Quarto output_low(pin_b1); delay_ms(100); verificacao(); break; case 5: //Liga Cozinha output_high(pin_b2); delay_ms(100); verificacao(); break; case 6: //Desliga Cozinha output_low(pin_b2); delay_ms(100); verificacao(); break; case 7: //Liga Panela output_high(pin_b3); delay_ms(100); verificacao(); break; case 8: //Desliga Panela output_low(pin_b3); delay_ms(100); verificacao(); break; case 9: //Liga Abajur output_high(pin_b4); delay_ms(100); verificacao(); break; case 10: //Desliga Abajur output_low(pin_b4); delay_ms(100); verificacao(); break; case 12: delay_ms(100); verificacao(); delay_ms(100); break; } //Fim do Switch-case } // Fim do While True}//Fim do Void"No compilador do Windows está funcionando perfeitamente, só quando tento compilar pelo Linux retorna o seguinte erro:will@will-laptop:~/Área de trabalho$ sdcc --debug -mpic14 -p16f877a Serial.cSerial.c:2:20: error: 16f877.h: No such file or directorySerial.c:3:2: error: invalid preprocessing directive #useSerial.c:4:2: error: invalid preprocessing directive #fusesSerial.c:5:2: error: invalid preprocessing directive #useSerial.c:12: warning 112: function 'input' implicit declarationSerial.c:18: warning 112: function 'input' implicit declarationSerial.c:24: warning 112: function 'input' implicit declarationSerial.c:30: warning 112: function 'input' implicit declarationSerial.c:36: warning 112: function 'input' implicit declarationSerial.c:44: warning 112: function 'fprintf' implicit declarationSerial.c:46: warning 112: function 'delay_ms' implicit declarationSerial.c:12: error 101: too many parameters Serial.c:18: error 101: too many parameters Serial.c:24: error 101: too many parameters Serial.c:30: error 101: too many parameters Serial.c:36: error 101: too many parameters Serial.c:44: error 101: too many parameters Serial.c:46: error 101: too many parameters Serial.c:62: warning 112: function 'kbhit' implicit declarationSerial.c:63: warning 112: function 'getc' implicit declarationSerial.c:104: warning 112: function 'output_high' implicit declarationSerial.c:105: warning 112: function 'delay_ms' implicit declarationSerial.c:110: warning 112: function 'output_low' implicit declarationSerial.c:111: warning 112: function 'delay_ms' implicit declarationSerial.c:116: warning 112: function 'output_high' implicit declarationSerial.c:117: warning 112: function 'delay_ms' implicit declarationSerial.c:122: warning 112: function 'output_low' implicit declarationSerial.c:123: warning 112: function 'delay_ms' implicit declarationSerial.c:128: warning 112: function 'output_high' implicit declarationSerial.c:129: warning 112: function 'delay_ms' implicit declarationSerial.c:134: warning 112: function 'output_low' implicit declarationSerial.c:135: warning 112: function 'delay_ms' implicit declarationSerial.c:140: warning 112: function 'output_high' implicit declarationSerial.c:141: warning 112: function 'delay_ms' implicit declarationSerial.c:146: warning 112: function 'output_low' implicit declarationSerial.c:147: warning 112: function 'delay_ms' implicit declarationSerial.c:152: warning 112: function 'output_high' implicit declarationSerial.c:153: warning 112: function 'delay_ms' implicit declarationSerial.c:158: warning 112: function 'output_low' implicit declarationSerial.c:159: warning 112: function 'delay_ms' implicit declarationSerial.c:166: warning 112: function 'delay_ms' implicit declarationSerial.c:168: warning 112: function 'delay_ms' implicit declarationSerial.c:60: error 20: Undefined identifier 'true'Serial.c:104: error 101: too many parameters Serial.c:105: error 101: too many parameters Serial.c:110: error 101: too many parameters Serial.c:111: error 101: too many parameters Serial.c:116: error 101: too many parameters Serial.c:117: error 101: too many parameters Serial.c:122: error 101: too many parameters Serial.c:123: error 101: too many parameters Serial.c:128: error 101: too many parameters Serial.c:129: error 101: too many parameters Serial.c:134: error 101: too many parameters Serial.c:135: error 101: too many parameters Serial.c:140: error 101: too many parameters Serial.c:141: error 101: too many parameters Serial.c:146: error 101: too many parameters Serial.c:147: error 101: too many parameters Serial.c:152: error 101: too many parameters Serial.c:153: error 101: too many parameters Serial.c:158: error 101: too many parameters Serial.c:159: error 101: too many parameters Serial.c:166: error 101: too many parameters Serial.c:168: error 101: too many parameters Já procurei alguns exemplos e nada de conseguir fazer funcionar, alguma sugestão??…
Adicionado por William Lima para PIC ao 20:51 em 19 junho 2012
um modulo, que esta ligado ao motor.
O Primeiro código, é apenas um contador, que se der para adaptar esse, eu não precisaria mudar os outros abaixo.
Esse código abaixo, ele apresenta apenas no monitor serial, o numero de pulsos, que no meu caso, ( mas vou modificar para apenas um pulso por volta ) são 4 pulsos, se eu puder modificar esse código, para que o motor pare em 700 voltas, ele teria que parar o motor, 2800 pulsos.( sendo 4 pulsos ) é isso que eu preciso fazer, como faze-lo parar, quando o monitor serial apresentar 2800 pulsos?
CODIGO 1 - contador de pulsos
boolean anterior = 0;
boolean actual = 0;
int contador = 0;
void setup()
{
Serial.begin(9600);
pinMode(2,INPUT);
}
boolean debounce(boolean dato_anterior)
{
boolean dato_actual = digitalRead(2);
if (dato_anterior != dato_actual)
{
delay(10);
dato_actual = digitalRead(2);
}
return dato_actual;
}
void loop()
{
actual = debounce(anterior);
if ( anterior == 0 && actual == 1)
{
contador++;
delay (100);
Serial.println(contador);
}
anterior = actual;
}
Esse código abaixo, é do Rui, daqui do fórum, ele foi muito gentil e o fez para mim, mas tenho que acrescentar o relé. O motor vai diminuindo aos poucos a velocidade ate parar, mas tenho duvidas.
Onde conectar o Relé? e testei o código sem o rele, e era para o motor ir diminuindo a velocidade, mas isso não aconteceu,
CODIGO 2 - do Rui com Relé
//Programa: Sensor de velocidade Arduino LM393
//http://www.arduinoecia.com.br/2016/02/sensor-de-velocidade-lm393-arduino.html
//Autor: Arduino e Cia Modificado por Rui
#define sensor 2 //Pino ligado ao pino D0 do sensor
#define motor 6 //Pino de saída para controle do motor ( nao ligar ditero no motor, use driver)
#define rele 7 //Pino de saída para o rele
volatile byte pulsos = 0;
unsigned int pulsos_por_volta = 63; //Altere o numero abaixo de acordo com o seu disco encoder
unsigned int voltas = 12; //Numero de voltas
unsigned int Fase = 0;
//------------------------------
void contador()
{
pulsos++; //Incrementa contador
}
//------------------------------
void setup()
{
Serial.begin(9600);
pinMode(motor, OUTPUT); //Pino do motor como saida (PWM)
pinMode(rele, OUTPUT); //Pino do rele HIGH desligado LOW ligado
pinMode(sensor, INPUT); //Pino do sensor como entrada
attachInterrupt(0, contador, FALLING); //Interrupcao 0 - pino digital 2 Aciona o contador a cada pulso
}
//------------------------------
void loop()
{
Fase = (pulsos / pulsos_por_volta); //Calculo de voltas
if (Fase >= 6) //Se faltam + q 6 voltas
{
digitalWrite(rele, HIGH); //Libera o motor
analogWrite(motor, 255); //Velocidade máxima
}
if (Fase < 6 & Fase > 3) //Se faltam 6 voltas
{
digitalWrite(rele, HIGH); //Libera o motor
analogWrite(motor, 127); //Reduz Velocidade para 1/2
}
if (Fase < 3) //Se faltam 3 voltas
{
digitalWrite(rele, HIGH); //Libera o motor
analogWrite(motor, 63); //Reduz Velocidade para 1/4
}
if (F
ase = 0) //Se terminaram as voltas
{
digitalWrite(rele, LOW); //Freia o motor
}
}
E Por fim, vem o código 3, que peguei de um tutorial de uma Bobinadora, no tutorial, ele dá poucas explicações,
#include AQUI eu preciso mudar para i2c, isso eu fiz
#include Esse LCDKeypad é um modulo, e eu tenho que trocar por um LCD que ja vem com o i2c, tenho que trocar os nomes? mas esse modulo vem com botões, ai preciso implementar os botões separados, como?
#define MODE_MENU 0 - Aqui o 0 é a porta A0 ? seria um botão?
#define MODE_WIND 1 - Aqui, é mais um botão que eu teria que implementar? como localizar e ele no restante do programa.?
#define PIN_MOTOR 2 - Aqui o A2 é a porta? seria + um botão?
#define PIN_SENSOR 3 - Aqui o A3 + um botão? esse é do ENCODER
#define INTER_SENSOR 1 - E esse, é mais um encoder, pois ele colocou dois, um do lado do outro.
MAS, não adianta aquele amigo daqui, me diga, faça isso ou aquilo, eu preciso que alguem modifique o codigo e me entregue ele pronto, talvez eu saiba modificar, talvez não.
CODIGO 3 - Bobinadora
#include
#include
#define MODE_MENU 0
#define MODE_WIND 1
#define PIN_MOTOR 2
#define PIN_SENSOR 3
#define INTER_SENSOR 1
#define MAX_SPEED 255
#define MIN_SPEED 127
#define SPEED_RANGE (MAX_SPEED - MIN_SPEED)
/** should have been 8 but 3 works ?? **/
#define TICKS_PER_REV 3
LCDKeypad lcd;
int numberOfWindings = 100;
int windingsLeft = 0;
int decimal = 1;
int ticks = 0;
char speed = 125;
int mode = MODE_MENU;
/**
* react on coil revolution
*/
void pinChangeInt() {
if (mode == MODE_WIND) {
ticks++;
if (ticks == TICKS_PER_REV) {
windingsLeft--;
ticks = 0;
if (windingsLeft == 0) {
lcd.clear();
digitalWrite(PIN_MOTOR, LOW);
mode = MODE_MENU;
speed = 0;
}
}
}
}
/**
* wait until button has been pressed
* returns the button number
*/
int waitButton(){
int buttonPressed;
lcd.blink();
while(lcd.button()!=KEYPAD_NONE); // wait for button release
delay(50);
while((buttonPressed=lcd.button())==KEYPAD_NONE); // wait for button hit
delay(50);
lcd.noBlink();
while(lcd.button()!=KEYPAD_NONE); // and wait until released again
return buttonPressed;
}
/**
* make digits from decimal places
*/
void makeDigits(int number, int *m, int *c, int *x, int *i) {
int a = number;
(*m) = a / 1000;
a = a % 1000;
(*c) = a / 100;
a = a % 100;
(*x) = a / 10;
a = a % 10;
(*i) = a;
}
/**
* fazer uma série de quatro casas decimais
*/
void makeNumber(int *number, int m, int c, int x, int i) {
(*number) = 1000 * m + 100 * c + 10 * x + i;
}
/**
* increment a digit until it's zero
*/
void incDigit(int *x, int max) {
int m = *x;
m ++;
if (m > max) {
m = max;
}
(*x) = m;
}
/**
* decrement a digit until it's zero
*/
void decDigit(int *x) {
int m = *x;
m --;
if (m < 0) {
m = 0;
}
(*x) = m;
}
/**
* increment the number at position "decimals"
*/
void incWindings(int decimals) {
int m, c, x, i;
makeDigits(numberOfWindings, &m, &c, &x, &i);
switch (decimals) {
case 3:
incDigit(&m, 9);
break;
case 2:
incDigit(&c, 9);
break;
case 1:
incDigit(&x, 9);
break;
case 0:
incDigit(&i, 9);
break;
default:
break;
}
makeNumber(&numberOfWindings, m, c, x, i);
}
/**
* decrement the number at position "decimals"
*/
void decWindings(int decimals) {
int m, c, x, i;
makeDigits(numberOfWindings, &m, &c, &x, &i);
switch (decimals) {
case 3:
decDigit(&m);
break;
case 2:
decDigit(&c);
break;
case 1:
decDigit(&x);
break;
case 0:
decDigit(&i);
break;
default:
break;
}
makeNumber(&numberOfWindings, m, c, x, i);
}
/*
* setup the system
*/
void setup() {
// show splash
lcd.begin(16,2);
lcd.clear();
lcd.print("TecDroiD's");
lcd.setCursor(0,1);
lcd.print(" Coil Winder");
// setup sensor pin
pinMode(PIN_SENSOR, INPUT);
attachInterrupt(INTER_SENSOR, pinChangeInt, RISING);
// setup motor pin
pinMode(PIN_MOTOR, OUTPUT);
//analogWrite(PIN_MOTOR,0);
digitalWrite(PIN_MOTOR, LOW);
// delay splash and clear
delay(1000);
lcd.clear();
}
void show_number(int number) {
int m,c,x,i;
makeDigits(number, &m, &c, &x, &i);
lcd.print(m,DEC);
lcd.print(c,DEC);
lcd.print(x,DEC);
lcd.print(i,DEC);
}
/**
* menu para selecionar os enrolamentos da bobina
*/
void loop_menu() {
// int m,c,x,i;
int buttonPressed;
/* show text */
lcd.setCursor(0,0);
lcd.print("Windings: ");
/* show number of windings */
lcd.setCursor(0,1);
show_number(numberOfWindings);
lcd.setCursor(3-decimal,1);
lcd.cursor();
buttonPressed = waitButton();
switch(buttonPressed) {
case KEYPAD_SELECT:
windingsLeft = numberOfWindings;
mode = MODE_WIND;
lcd.clear();
break;
case KEYPAD_LEFT:
incDigit(&decimal, 3);
break;
case KEYPAD_RIGHT:
decDigit(&decimal);
break;
case KEYPAD_UP:
/* number increase */
incWindings(decimal);
break;
case KEYPAD_DOWN:
decWindings(decimal);
break;
default:
break;
}
}
/**
* wind the coil - enrolar a bobina
*/
void loop_wind() {
int buttonPressed;
/* set motor speed */
//analogWrite(PIN_MOTOR, speed);
digitalWrite(PIN_MOTOR,HIGH);
lcd.setCursor(0,0);
lcd.print("Windings: ");
lcd.print(numberOfWindings, DEC);
lcd.setCursor(0,1);
lcd.print("To Do: ");
show_number(windingsLeft);
//lcd.print(windingsLeft, DEC);
buttonPressed = lcd.button();
if (buttonPressed == KEYPAD_SELECT) {
lcd.clear();
digitalWrite(PIN_MOTOR, LOW);
mode = MODE_MENU;
}
}
/**
* Select looping mode
*/
void loop() {
switch(mode) {
case MODE_MENU:
loop_menu();
break;
case MODE_WIND:
loop_wind();
break;
default:
lcd.print("Mode ERROR!? ");
lcd.print(mode, DEC);
break;
}
}
enrolador de bobina automática - Abaixo, tem o link dos arquivos. Esse é o de cima.
por tecdroid , publicada 21 de março de 2016
http://www.thingiverse.com/thing:1431330
Muito obrigado…
er_interface.h:28,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ets_sys.h:189:105: error: conflicting declaration of C function 'void* malloc(size_t, const char*, int)'
void *pvPortMalloc(size_t xWantedSize, const char* file, int line) __attribute__((malloc, alloc_size(1)));
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/newlib/stdio.h:29:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:27,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/newlib/stdlib.h:101:21: note: previous declaration 'void* malloc(size_t)'
_PTR _EXFUN_NOTHROW(malloc,(size_t __size));
^
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/newlib/_ansi.h:64:37: note: in definition of macro '_EXFUN_NOTHROW'
#define _EXFUN_NOTHROW(name, proto) name proto _NOTHROW
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/os_type.h:28:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:28,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ets_sys.h:191:53: error: conflicting declaration of C function 'void free(void*, const char*, int)'
void vPortFree(void *ptr, const char* file, int line);
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/newlib/stdio.h:29:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:27,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/newlib/stdlib.h:90:22: note: previous declaration 'void free(void*)'
_VOID _EXFUN_NOTHROW(free,(_PTR));
^
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/newlib/_ansi.h:64:37: note: in definition of macro '_EXFUN_NOTHROW'
#define _EXFUN_NOTHROW(name, proto) name proto _NOTHROW
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/os_type.h:28:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:28,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ets_sys.h:207:37: error: conflicting declaration of C function 'void ets_install_putc1(void*)'
void ets_install_putc1(void* routine);
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOSConfig.h:120:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOS.h:99,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:32,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/rom/ets_sys.h:242:6: note: previous declaration 'void ets_install_putc1(void (*)(char))'
void ets_install_putc1(void (*p)(char c));
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/os_type.h:28:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:28,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ets_sys.h:208:27: error: conflicting declaration of C function 'void ets_isr_mask(int)'
void ets_isr_mask(int intr);
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOSConfig.h:120:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOS.h:99,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:32,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/rom/ets_sys.h:477:6: note: previous declaration 'void ets_isr_mask(uint32_t)'
void ets_isr_mask(uint32_t mask);
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/os_type.h:28:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:28,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ets_sys.h:209:29: error: conflicting declaration of C function 'void ets_isr_unmask(int)'
void ets_isr_unmask(int intr);
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOSConfig.h:120:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOS.h:99,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:32,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/rom/ets_sys.h:488:6: note: previous declaration 'void ets_isr_unmask(uint32_t)'
void ets_isr_unmask(uint32_t unmask);
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/os_type.h:28:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:28,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ets_sys.h:216:68: error: conflicting declaration of C function 'bool ets_task(ETSTask, uint8, ETSEvent*, uint8)'
bool ets_task(ETSTask task, uint8 prio, ETSEvent *queue, uint8 qlen);
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOSConfig.h:120:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOS.h:99,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:32,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/rom/ets_sys.h:105:6: note: previous declaration 'void ets_task(ETSTask, uint8_t, ETSEvent*, uint8_t)'
void ets_task(ETSTask task, uint8_t prio, ETSEvent *queue, uint8_t qlen);
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/os_type.h:28:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:28,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ets_sys.h:217:54: error: conflicting declaration of C function 'bool ets_post(uint8, ETSSignal, ETSParam)'
bool ets_post(uint8 prio, ETSSignal sig, ETSParam par);
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOSConfig.h:120:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOS.h:99,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:32,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/rom/ets_sys.h:119:12: note: previous declaration 'ETS_STATUS ets_post(uint8_t, ETSSignal, ETSParam)'
ETS_STATUS ets_post(uint8_t prio, ETSSignal sig, ETSParam par);
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:38:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/gpio.h:40:29: error: redeclaration of 'GPIO_PIN_INTR_DISABLE'
GPIO_PIN_INTR_DISABLE = 0,
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/driver/driver/gpio.h:24:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/esp_sleep.h:19,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/esp_system.h:21,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/portable.h:126,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOS.h:105,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:32,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/rom/gpio.h:52:5: note: previous declaration 'GPIO_INT_TYPE GPIO_PIN_INTR_DISABLE'
GPIO_PIN_INTR_DISABLE = 0,
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:38:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/gpio.h:41:29: error: redeclaration of 'GPIO_PIN_INTR_POSEDGE'
GPIO_PIN_INTR_POSEDGE = 1,
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/driver/driver/gpio.h:24:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/esp_sleep.h:19,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/esp_system.h:21,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/portable.h:126,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOS.h:105,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:32,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/rom/gpio.h:53:5: note: previous declaration 'GPIO_INT_TYPE GPIO_PIN_INTR_POSEDGE'
GPIO_PIN_INTR_POSEDGE = 1,
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:38:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/gpio.h:42:29: error: redeclaration of 'GPIO_PIN_INTR_NEGEDGE'
GPIO_PIN_INTR_NEGEDGE = 2,
^
In file included from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/driver/driver/gpio.h:24:0,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/esp_sleep.h:19,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/esp_system.h:21,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/portable.h:126,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/freertos/freertos/FreeRTOS.h:105,
from C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0\cores\esp32/Arduino.h:32,
from sketch\ESP_-_Salva_Arquivo.ino.cpp:1:
C:\Users\amora\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.0/tools/sdk/include/esp32/rom/gpio.h:54:5: note: previous declaration 'GPIO_INT_TYPE GPIO_PIN_INTR_NEGEDGE'
GPIO_PIN_INTR_NEGEDGE = 2,
^
In file included from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/user_interface.h:38:0,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFiSTA.h:29,
from C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/ESP8266WiFi.h:34,
from K:\!Kaie\!Laboratório\Arduino\!!Arduino Skatches\ESP_-_Salva_Arquivo\ESP_-_Salva_Arquivo.ino:23:
C:\Users\amora\OneDrive\Documentos\Arduino\libraries\ESP8266WiFi\src/gpio.h:43:29: error: redeclaration of 'GPIO_PIN_INTR_ANYEDGE'
GPIO_PIN_INTR_ANYEDGE = 3,
^…