rem como usei muitos arrays estourei a memoria do meu Arduino.
Alguem poderia me ajudar?
Estou usando o CI 74hc595 em cascata para manipular 16 displays de sete segmentos.
Com o codigo em anexo só consigo manipular 2 displays.
Eu já tentei com Matriz de duas dimensões, mas parece que o procedimento é o mesmo que de arrays.
Essa mascara de mult arrays represnta a linha de displays que eu quero comandar(dispay 1...display 4)
int *DisplayLinha[44] [24]= { {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},//1 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1},//2 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0},//3 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0},//4 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0},//5 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1},//6 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},//7 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1},//8 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0},//9 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1},//0 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},//d {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},//1 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1},//2 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0},//3 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0},//4 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0},//5 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1},//6 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},//7 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1},//8 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0},//9 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1},//0 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},//d {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},//1 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1},//2 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0},//3 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0},//4 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0},//5 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1},//6 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},//7 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1},//8 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0},//9 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1},//0 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},//d {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},//1 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1},//2 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0},//3 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0},//4 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0},//5 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1},//6 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},//7 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1},//8 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0},//9 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1},//0 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0}};//d
código pronto - dá estouro na memoria! int D1um[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0};//1 int D1dois[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1};//2 int D1tres[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0};//3 int D1quatro[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0};//4 int D1cinco[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0};//5 int D1seis[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1};//6 int D1sete[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0};//7 int D1oito[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1};//8 int D1nove[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0};//9 int D1zero[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1};//0 int D1dig[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0};//d
// D A,F,G,B,C,d,E D A,F,G,B,C,d,E int D2um[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0};//1 int D2dois[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1};//2 int D2tres[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0};//3 int D2quatro[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0};//4 int D2cinco[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0};//5 int D2seis[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1};//6 int D2sete[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0};//7 int D2oito[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1};//8 int D2nove[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0};//9 int D2zero[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1};//0 int D2dig[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0};//d
// D A,F,G,B,C,d,E D A,F,G,B,C,d,E /*int D3um[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0};//1 int D3dois[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1};//2 int D3tres[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0};//3 int D3quatro[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0};//4 int D3cinco[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0};//5 int D3seis[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1};//6 int D3sete[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0};//7 int D3oito[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1};//8 int D3nove[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0};//9 int D3zero[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1};//0 int D3dig[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0};//d
int D4um[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0};//1 int D4dois[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1};//2 int D4tres[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0};//3 int D4quatro[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0};//4 int D4cinco[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0};//5 int D4seis[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1};//6 int D4sete[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0};//7 int D4oito[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1};//8 int D4nove[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0};//9 int D4zero[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1};//0 int D4dig[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0};//d //array dos numeros*/ int *number[] = {D1dig,D1zero,D1um,D1dois,D1tres,D1quatro,D1cinco,D1seis,D1sete,D1oito,D1nove, D2dig,D2zero,D2um,D2dois,D2tres,D2quatro,D2cinco,D2seis,D2sete,D2oito,D2nove}; /*D3dig,D3zero,D3um,D3dois,D3tres,D3quatro,D3cinco,D3seis,D3sete,D3oito,D3nove, D4dig,D4zero,D4um,D4dois,D4tres,D4quatro,D4cinco,D4seis,D4sete,D4oito,D4nove};*/
//Define os pinos de saida int SER = 8; int RCLK = 11; int SRCLK = 12;
int counter = 0;
void changeValues(int *val[]){ for (int j=0;j<22;j++){ for(int i=23; i > -1; i--){ //SRCLK deslocamento digitalWrite(SRCLK, LOW); //HIGH logo apos deslocar, setar o clock digitalWrite(RCLK, HIGH); int PIN = val[j][i]; //pino a deslocar digitalWrite(SER, PIN); //HIGH para ativar digitalWrite(SRCLK, HIGH); } digitalWrite(RCLK, LOW); delay(500); } }
void setup(){ //configurando pinos como saida pinMode(SER,OUTPUT); pinMode(RCLK,OUTPUT); pinMode(SRCLK,OUTPUT); }
void loop(){ changeValues(number); counter += 1; if (counter >7){counter =0;} }…
Adicionado por jose merces ao 21:59 em 20 novembro 2014
qual designio dos deuses, o I2C master parece que reserva pra si mesmo o valor zero, entao tem que usar o valor 1 pro slave 1 e 2 para slave 2, assim:
slave 1:
digitalWrite(m0,HIGH);digitalWrite(m1,LOW);digitalWrite(m2,LOW);
(não mais LOW-LOW-LOW)
slave 2:
digitalWrite(m0,LOW);digitalWrite(m1,HIGH);digitalWrite(m2,LOW);
Segundo essa lógica (mesmo que eu esteja errado), não seria possível usar 8 expansores, e sim apenas 7, porque se o valor ZERO (LOW-LOW-LOW) está reservado ao master, e se o maior valor = 7 (HIGH-HIGH-HIGH = 1 + 2 + 4), então não seriam possiveis 64 sensores, e sim "apenas" 56. Mesmo assim, um belo upgrade no Arduino.
O Mega, que eu tenho aqui, tem 51 digitais e 15 analogicos. Se preciso de 6 digitais e 1 analogico pra ligar 54 sensores (e não 64, como diz o site www.arduino.cc), ainda assim seriam 448 sensores!…
Adicionado por Alexandre ao 15:13 em 25 dezembro 2012
Preciso conectar 7 cubos de led 3x3x3 ao Arduino Uno.
Pergunta 1) É possível fazer esta conexão sem danificar o Arduino?
2) Como seria este circuito? Devo usar o Drive de corrente?
problemas com essa biblioteca antes mas acabei deixando pra la, agora preciso muito compilar esse codigo. Por favor me ajudem. Att William
obs: codigo erro abaixo
/usr/share/arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega2560 -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/mega -I/usr/share/arduino/libraries/Wire -I/usr/share/arduino/libraries/LiquidCrystal -I/home/william/sketchbook/libraries/MenuSystem /tmp/build8103932391107466226.tmp/tesla_winder.cpp -o /tmp/build8103932391107466226.tmp/tesla_winder.cpp.o In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:259:21: warning: identifier ‘nullptr’ is a keyword in C++11 [-Wc++0x-compat] FormatValueFnPtr format_value_fn=nullptr); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:39:11: error: expected nested-name-specifier before ‘SelectFnPtr’ using SelectFnPtr = void (*)(MenuComponent* menu_component); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:45:37: error: ‘SelectFnPtr’ has not been declared MenuComponent(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:102:30: error: ‘SelectFnPtr’ has not been declared void set_select_function(SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:176:5: error: ‘SelectFnPtr’ does not name a type SelectFnPtr _select_fn; ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:32: error: ‘SelectFnPtr’ has not been declared MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:225:36: error: ‘SelectFnPtr’ has not been declared BackMenuItem(const char* name, SelectFnPtr select_fn, MenuSystem* ms); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:243:11: error: expected nested-name-specifier before ‘FormatValueFnPtr’ using FormatValueFnPtr = const String (*)(const float value); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:256:39: error: ‘SelectFnPtr’ has not been declared NumericMenuItem(const char* name, SelectFnPtr select_fn, ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:259:21: error: ‘FormatValueFnPtr’ has not been declared FormatValueFnPtr format_value_fn=nullptr); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:267:31: error: ‘FormatValueFnPtr’ has not been declared void set_number_formatter(FormatValueFnPtr format_value_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:292:5: error: ‘FormatValueFnPtr’ does not name a type FormatValueFnPtr _format_value_fn; ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:259:54: error: ‘nullptr’ was not declared in this scope FormatValueFnPtr format_value_fn=nullptr); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:307:28: error: ‘SelectFnPtr’ has not been declared Menu(const char* name, SelectFnPtr select_fn=nullptr); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:307:50: error: ‘nullptr’ was not declared in this scope Menu(const char* name, SelectFnPtr select_fn=nullptr); ^tesla_winder.ino:36:12: error: no matching function for call to ‘MenuSystem::MenuSystem()’tesla_winder.ino:36:12: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:361:5: note: MenuSystem::MenuSystem(const MenuComponentRenderer&) MenuSystem(MenuComponentRenderer const& renderer); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:361:5: note: candidate expects 1 argument, 0 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:359:7: note: MenuSystem::MenuSystem(const MenuSystem&) class MenuSystem { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:359:7: note: candidate expects 1 argument, 0 providedtesla_winder.ino:37:19: error: call to ‘Menu::Menu(const char*, int)’ uses the default argument for parameter 2, which is not yet definedtesla_winder.ino:38:19: error: call to ‘Menu::Menu(const char*, int)’ uses the default argument for parameter 2, which is not yet definedtesla_winder.ino:39:31: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:39:31: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:40:33: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:40:33: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:41:35: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:41:35: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:42:23: error: call to ‘Menu::Menu(const char*, int)’ uses the default argument for parameter 2, which is not yet definedtesla_winder.ino:43:39: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:43:39: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:44:38: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:44:38: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:45:41: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:45:41: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:46:40: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:46:40: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:47:37: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:47:37: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:48:28: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:48:28: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:49:19: error: call to ‘Menu::Menu(const char*, int)’ uses the default argument for parameter 2, which is not yet definedtesla_winder.ino:50:29: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:50:29: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:51:31: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:51:31: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:52:31: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:52:31: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:53:32: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:53:32: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:54:32: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:54:32: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:55:34: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:55:34: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:56:29: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:56:29: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:57:30: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:57:30: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:58:30: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:58:30: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:59:23: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:59:23: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:60:25: error: no matching function for call to ‘MenuItem::MenuItem(const char [20])’tesla_winder.ino:60:25: note: candidates are:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: MenuItem::MenuItem(const char*, int) MenuItem(const char* name, SelectFnPtr select_fn); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:195:5: note: candidate expects 2 arguments, 1 provided/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: MenuItem::MenuItem(const MenuItem&) class MenuItem : public MenuComponent { ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:188:7: note: no known conversion for argument 1 from ‘const char [20]’ to ‘const MenuItem&’tesla_winder.ino:157:20: error: no matching function for call to ‘LiquidCrystal::LiquidCrystal(int)’tesla_winder.ino:157:20: note: candidates are:In file included from tesla_winder.ino:5:0:/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:55:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t) LiquidCrystal(uint8_t rs, uint8_t enable, ^/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:55:3: note: candidate expects 6 arguments, 1 provided/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:53:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t) LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, ^/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:53:3: note: candidate expects 7 arguments, 1 provided/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:50:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t) LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable, ^/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:50:3: note: candidate expects 11 arguments, 1 provided/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:47:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t) LiquidCrystal(uint8_t rs, uint8_t enable, ^/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:47:3: note: candidate expects 10 arguments, 1 provided/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:45:7: note: LiquidCrystal::LiquidCrystal(const LiquidCrystal&) class LiquidCrystal : public Print { ^/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:45:7: note: no known conversion for argument 1 from ‘int’ to ‘const LiquidCrystal&’tesla_winder.ino: In function ‘void setup()’:tesla_winder.ino:230:55: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:230:55: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:231:49: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:231:49: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:232:51: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:232:51: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:235:65: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:235:65: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:236:67: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:236:67: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:237:67: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:237:67: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:238:69: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:238:69: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:239:58: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:239:58: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:240:52: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:240:52: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:243:40: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:243:40: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:244:46: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:244:46: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:245:46: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:245:46: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:246:48: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:246:48: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:247:44: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:247:44: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:248:46: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:248:46: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:249:44: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:249:44: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:250:42: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:250:42: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:251:42: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:251:42: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:252:42: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:252:42: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:253:42: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:253:42: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:255:41: error: no matching function for call to ‘Menu::add_item(MenuItem*, void (*)(MenuItem*))’tesla_winder.ino:255:41: note: candidate is:In file included from tesla_winder.ino:7:0:/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: void Menu::add_item(MenuItem*) void add_item(MenuItem* p_item); ^/home/william/sketchbook/libraries/MenuSystem/MenuSystem.h:310:10: note: candidate expects 1 argument, 2 providedtesla_winder.ino:257:6: error: ‘class MenuSystem’ has no member named ‘set_root_menu’tesla_winder.ino:259:7: error: ‘class LiquidCrystal’ has no member named ‘setBacklight’tesla_winder.ino:261:7: error: ‘class LiquidCrystal’ has no member named ‘setBacklight’tesla_winder.ino: In function ‘void displayMenu()’:tesla_winder.ino:525:47: error: ‘const class Menu’ has no member named ‘get_selected’tesla_winder.ino:527:34: error: ‘const class Menu’ has no member named ‘get_num_menu_components’tesla_winder.ino:528:31: error: ‘const class Menu’ has no member named ‘get_cur_menu_component_num’tesla_winder.ino:15:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:567:33: note: in expansion of macro ‘ENABLE’tesla_winder.ino:19:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:571:38: note: in expansion of macro ‘COIL_STEPS’tesla_winder.ino:20:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:575:38: note: in expansion of macro ‘COIL_INV’tesla_winder.ino:22:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:579:38: note: in expansion of macro ‘GUIDE_INV’tesla_winder.ino:21:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:583:38: note: in expansion of macro ‘GUIDE_STEPS’tesla_winder.ino:26:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:587:38: note: in expansion of macro ‘WIRE_SIZE’tesla_winder.ino:27:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:591:38: note: in expansion of macro ‘COIL_DIAM’tesla_winder.ino:28:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:595:38: note: in expansion of macro ‘COIL_HOME’tesla_winder.ino:29:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:599:38: note: in expansion of macro ‘COIL_CALC’tesla_winder.ino:30:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:603:38: note: in expansion of macro ‘COIL_RATIO’tesla_winder.ino:31:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:607:38: note: in expansion of macro ‘COIL_LEN’tesla_winder.ino:32:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:611:38: note: in expansion of macro ‘COIL_TURNS’tesla_winder.ino:33:21: warning: comparison with string literal results in unspecified behaviour [-Waddress]tesla_winder.ino:615:38: note: in expansion of macro ‘COIL_SPEED’tesla_winder.ino: In function ‘long int edit_long(long int)’:tesla_winder.ino:701:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]tesla_winder.ino:728:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]tesla_winder.ino: In function ‘float edit_float(float)’:tesla_winder.ino:848:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]tesla_winder.ino:879:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]tesla_winder.ino: In function ‘void menu_jog_coil(MenuItem*)’:tesla_winder.ino:1239:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]tesla_winder.ino: In function ‘void menu_jog_guide(MenuItem*)’:tesla_winder.ino:1536:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]tesla_winder.ino: In function ‘void menu_job_start(MenuItem*)’:tesla_winder.ino:1789:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]tesla_winder.ino:1758:8: warning: unused variable ‘end_job’ [-Wunused-variable]tesla_winder.ino:1780:17: warning: unused variable ‘loop_steps’ [-Wunused-variable]tesla_winder.ino: In function ‘void print_status(long int)’:tesla_winder.ino:1974:8: warning: unused variable ‘buf’ [-Wunused-variable]tesla_winder.ino:1975:8: warning: unused variable ‘buf2’ [-Wunused-variable]…
ss ip(192,168,1,122); // alterar IP do vosso RouterIPAddress gateway(192, 168, 1, 1);IPAddress subnet(255, 255, 255, 0);EthernetServer server(82);
void setup(){ Serial.begin(9600); pinMode(rele1, OUTPUT); pinMode(rele2, OUTPUT); SPI.begin(); Ethernet.begin(mac, ip, gateway, subnet); server.begin();} void loop(){ char valorlido = Serial.read(); if (valorlido == 'a') {digitalWrite(rele1, HIGH); Serial.println("Rele 1 Ligado");} if (valorlido == 'b') {digitalWrite(rele1, LOW); Serial.println("Rele 1 Apagado");} if (valorlido == 'c') {digitalWrite(rele2, HIGH); Serial.println("Rele 2 Ligado");} if (valorlido == 'd') {digitalWrite(rele2, LOW); Serial.println("Rele 2 Apagado");} EthernetClient client = server.available(); if (client) { String vars1; while (client.connected()) if (client.available()) {char c = client.read(); vars1.concat(c); if (vars1.endsWith("/1on")) varOnOff1 = 1; else if(vars1.endsWith("/1off")) varOnOff1 = 2; if(varOnOff1 == 1) digitalWrite(rele1, HIGH); else if (varOnOff1 == 2) digitalWrite(rele1, LOW); if (vars1.endsWith("/2on")) varOnOff1 = 3; else if(vars1.endsWith("/2off")) varOnOff1 = 4; if(varOnOff1 == 3) digitalWrite(rele2, HIGH); else if (varOnOff1 == 4) digitalWrite(rele2, LOW); } }}
Dá para ligar 2 relés pelas portas 6 e 7 do Arduino através de internet e shield Bluetooth.
Para bluetooth:
Instalar bluetooh no telemóvel e ligar (password: 1234)
a - liga relé 1
b - apaga relé 1
c - liga relé 2
d - apaga relé 2
Para Internet:
Criar um IP através de DYNDNS.org.
Abrir a porta 82 (ou outra à escolha) no router.
Digitar: exemplo.dyndns.org/1on para ligar relé 1
exemplo.dyndns.org/1off para apagar relé 1
exemplo.dyndns.org/2on para ligar relé 2
exemplo.dyndns.org/2off para apagar relé 2
Espero que ajude alguém!!!!!…
Adicionado por Mário Ventura ao 10:39 em 29 janeiro 2014
desativada a interrupção do dimmer também funciona:
Exemplo: if (bufferSerial == "A"){detachInterrupt(0);irsend.send(1,0x2FD48B7,32); attachInterrupt(0, zero_crosss_int, RISING); enviou =1; delay(5);} // código NEC(1) TV para ligar
A conexão serial com a placa é feita pelo modulo BT HC-05.
Grato pelo interesse.
#include <IRLib.h>#include <IRLibMatch.h>#include <IRLibRData.h>#include <IRLibTimer.h>
//definições dimmerint ZERO = 2; // pino de interrupção do zero crossint AC_LOAD = 10; // Output para o Triacvolatile int dimming = 100; // Dimming level (0-128) 0 = ON, 128 = OFFString ValorDimmer;
//definições do Receptor IRIRsend irsend; //instância para enviar IR const int led = 8; // pino do led de indicação de envio IR const int ledIR = 3; //pino do emissor IR
//variaveis do temporizador para temperaturaint savedTime;int totalTime = 0;
//variaveis leitura serialString bufferSerial = "";int numero; //contador para alterar a potencia do dimmerint enviou; //flag para indicar que foi enviado codigo IR
void setup(){Serial.begin(9600);
//irpinMode(led, OUTPUT); // saida led pinMode(ledIR ,OUTPUT); // saída do infravermelho
//dimmerpinMode(ZERO, INPUT);pinMode(AC_LOAD, OUTPUT);// Set AC Load pin as outputattachInterrupt(0, zero_crosss_int, RISING); //zero-crossing - interrupçãonumero = dimming; //inicializa a leitura da serial com o mesmo valor do dimming
//inicia temporizador que atualiza temperaturasavedTime = millis();delay(100);
}
void loop(){ //atualiza temperatura no intervalo de "totaltime" int passedTime = millis() - savedTime; if (passedTime > totalTime) { //temperatura LM35 int sum=0; for (int i = 0; i < 50; i++) sum += analogRead(A5); int media = (sum * 0.48875855) / 50; savedTime = millis(); // totalTime = 5000; //Seta para 5seg } bufferSerial = ""; while (Serial.available()>0) { enviou = 0; char c = Serial.read(); // Lê byte do buffer serial; bufferSerial.concat(c); // Concatena valores delay(5); if (c == '@') break; // se leu o caracter @ sai do loop. Este caracter é enviado pela rotina do celular }
if (bufferSerial.length()>0 && bufferSerial.length()<2 && !enviou) { //verifica se informação que chegou esta entre 1 e 2 caracteres (para futuras implementações)
digitalWrite(led, HIGH); //acende o led indicador de envio de IR / comando
if (bufferSerial == "A"){irsend.send(1,0x2FD48B7,32); enviou =1; delay(5);} // código NEC(1) TV para ligar if (bufferSerial == "B"){irsend.send(1,0x2FD7887,32); enviou =1; delay(5);} // código NEC(1) TV para diminuir o volume if (bufferSerial == "C"){irsend.send(1,0x2FD58A7,32); enviou =1; delay(5);}// código NEC(1) TV para aumentar o volume if (bufferSerial == "D"){irsend.send(1,0x2FDA857,32); enviou =1; delay(5);}// código NEC(1) TV para timer if (bufferSerial == "E"){irsend.send(1,0x2FD08F7,32); enviou =1; delay(5);}// código NEC(1) TV para mute if (bufferSerial == "M"){irsend.send(7,0x34347887,32);enviou =1; delay(5);} // código NECx(7) HTLG para ligar/desligar if (bufferSerial == "N"){irsend.send(7,0x34346897,32);enviou =1; delay(5);} // código NECx(7) HTLG para baixar o volume if (bufferSerial == "O"){irsend.send(7,0x3434e817,32);enviou =1; delay(5);}// código NECx(7) HTLG para aumentar o volume if (bufferSerial == "P"){irsend.send(7,0x343451AE,32);enviou =1; delay(5);}// código NECx(7) HTLG para selecionar o source if (bufferSerial == "Q"){irsend.send(7,0x343459A6,32);enviou =1; delay(5);}// código NECx(7) HTLG para abrir o deck if (bufferSerial == "R"){irsend.send(7,0x343415EA,32);enviou =1; delay(5);} // código NECx(7) HTLG para mudar de estação / seleção - if (bufferSerial == "S"){irsend.send(7,0x3434956A,32);enviou =1; delay(5);} // código NECx(7) HTLG para mudar de estação / seleção + if (bufferSerial == "T"){irsend.send(7,0x343455AA,32);enviou =1; delay(5);}// código NECx(7) HTLG como enter if (bufferSerial == "U"){irsend.send(7,0x343420DF,32);enviou =1; delay(5);}// código NECx(7) HTLG como play if (bufferSerial == "V"){irsend.send(7,0x3434F20D,32);enviou =1; delay(5);}// código NECx(7) HTLG como pause if (bufferSerial == "X"){irsend.send(7,0x3434609F,32);enviou =1; delay(5);} // código NECx(7) HTLG como skip - if (bufferSerial == "Y"){irsend.send(7,0x3434E01F,32);enviou =1; delay(5);}// código NECx(7) HTLG como skip + }
//se o comando possui mais de 2 caracteres então é para o dimmer if (bufferSerial.length()>2){ bufferSerial.trim(); //elimina possiveis espaços if (bufferSerial.substring(0,2) == "#L") numero = numero+5; //incrementa contador do dimmer para diminuir potencia if (bufferSerial.substring(0,2) == "#H") numero = numero-5; //decrementa contador do dimmer para aumentar potencia if (numero >= 15 && numero <= 128) //se contador estiver abaixo ou acima dos limites do dimmer mantém a ultima leitura dimming=numero; else dimming=dimming; } digitalWrite(led, LOW); //apaga o led indicador de envio de IR / comando }
// função disparada pelo zero-crossingvoid zero_crosss_int() {int dimtime = (65*dimming); // For 60Hz =>65 delayMicroseconds(dimtime); // Off cycledigitalWrite(AC_LOAD, HIGH); // triac firingdelayMicroseconds(8.33); // triac On propogation delay 10ms for 60Hz use 8.33)digitalWrite(AC_LOAD, LOW); // triac Off}…
Adicionado por Fernando Souza ao 10:53 em 10 novembro 2014
recionar o botão ele conta 1, 2, 3... ate o 9 e zera novamente. Sou novo nisso não tenho ideia de como fazer isso alguém poderia ajudar?
Obrigado desde já =) …
Adicionado por Luiz Otávio ao 21:22 em 21 março 2013
mpartilhar todos os outros pinos, apenas o Enable precisa ser unico.
Tudo que se refere a lcd passa a se referir a lcd1 ou lcd2 conforme sua necessidade.
O uso de mais teclas recomendo construir um teclado maior. Vc pode construir um teclado de 8x4 assim gastaria só mais 4 pinos. Aih por ex:
const byte ROWS = 8; //Quatro linhas
const byte COLS = 4; //QUatro
char convteclado[16]={'1','4','7','2','5','8'.... //Matriz de conversão de posicoes teclado 2 para teclado1.
//Mapeamento de teclas
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A', 'E','I','M','Q',},
{'4', '5', '6', 'B', 'F','J'... // '...' significa que vc tem que terminar a tabela
{'7', '8', '9', 'C', 'G','K'...
{'*', '0', '#', 'D', 'H','L'...
Aih vc precisa fazer uma lógica depois pra transformar o 'E' em '1' do teclado 2. algo como: if (key>='E') teclado=1; // Como estão em ordem os caracteres é possivel fazer só isso para saber se é uma tecla 'alta'.
else
{teclado=2;
key=convteclado[key-'E']; // usa a tabela para converter.
}…
Adicionado por Eduardo ao 0:28 em 29 setembro 2017