Hola! soy muy nuevo en esto de arduino y estoy queriendo hacer funciones propias para simplificar un programa que hice antes, paso a explicarles mi problema:
en el programa que arme primero tenia dos entradas (una de un botón y otra de un sensor) si el botón no estaba apretado el arduino por lcd mostraba el texto "apagado" si el botón se apretaba y el sensor no detectaba nada mostraba "En brazo" y por ultimo si el botón estaba apretado y el sensor detectaba algo mostraba "En sincro" (adjunto el programa al final) ahora cuando quise hacer una función para que quede todo un poco mas prolijo me encontré con el problema de que no sabía cómo hacer para asignar a esa función variables del tipo int y del tipo char juntas, defino las variables del tipo int y con esas no hay problema pero cuando quiero poner las de tipo chart (para que las muestre el lcd) me tira error ahora les pongo los programas así ven de lo que les hablo:
Este es el que funciona bien:
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup() {
lcd.begin(16, 2);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(11, INPUT);
pinMode(10, INPUT);
}
void loop() {
for(int z = 1; z < 2; z++){
int A; int B;
A = digitalRead(11);
B = digitalRead(10);
if (A == HIGH) {
if (B == LOW) {
for(int i = 1; i < 2; i++) {
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("T.S.I.");
lcd.setCursor(7, 1);
lcd.print("En brazo");
delay(1000);
lcd.noDisplay();
delay(1000);
int i = 0;
lcd.display();
}
}
else {
for(int u = 1; u < 2; u++) {
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("T.S.I.");
lcd.setCursor(7, 1);
lcd.print("En sincro");
delay(250);
int u = 0;
lcd.noDisplay();
delay(250);
lcd.display();
}
}
}
else {
int x = 0;
for(x == 1; x < 2; x++){
lcd.clear();
}
for(x == 3; x < 99999999; x++){
lcd.setCursor(5, 0);
lcd.print("T.S.I.");
lcd.setCursor(7, 1);
lcd.print("Apagado");
}
}
z = 0;
}
}
y este el que no puedo hacer funcionar:
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int sensordepulso = 11;
int sensordeprox = 10;
float funcion;
void setup() {
lcd.begin(16, 2);
lcd.setCursor(5, 0);
lcd.print("T.S.I.");
pinMode(sensordepulso, INPUT);
pinMode(sensordeprox, INPUT);
}
void loop(){
if (sensordepulso == HIGH) {
int a01 = 250;
int a02 = 1000;
int a03 = sensordepulso;
int a04 = sensordeprox;
char b01[] = {"En sincro"};
char b02[] = {"En brazo"};
Funcionloop(a01, a02, a03, a04, b01, b02);
}
else {
lcd.print("Apagado");
}
String Funcionloop(int Delay01, int Delay02, int sensor01, int sensor02, char Display01, char Display02){
if (sensor02 == HIGH) {
lcd.setCursor(3, 1);
lcd.print(Display01[9]);
delay(Delay01);
lcd.noDisplay();
delay(Delay01);
lcd.display();
}
else {
lcd.setCursor(3, 1);
lcd.print(Display02[8]);
delay(Delay02);
lcd.noDisplay();
delay(Delay02);
lcd,display();
}
Por favor les pido me ayuden a comprender mejor la programación o si saben de algún manual o algo, no quiero la solución del problema sino entender como se hace, también me gustaría saber bien cómo manejar el tema de cuando algo se loopea y cuando se realiza una sola vez.
Desde ya muchas gracias!
Saludos!