Go Down

Topic: programa  (Read 513 times) previous topic - next topic

carlosbernardo269

Sep 22, 2017, 07:14 am Last Edit: Sep 22, 2017, 03:25 pm by surbyte Reason: Los códigos van con etiquetas </>
necesito ayuda mi programa se repite todo desde el comienzo es con 4 sensores y un lcd de 2x16

Code: [Select]
#include <LiquidCrystal.h>
int a;
int b;
int c;
int d;
float w=0;
float x=0;
float y=0;
float z=0;
float n=0;

LiquidCrystal lcd(0, 1, 5, 4, 3, 2);
void setup() {

pinMode(52,INPUT);
pinMode(50,INPUT);
pinMode(48,INPUT);
pinMode(46,INPUT);
pinMode(44,INPUT);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Tecnologico de");
lcd.setCursor(0,1);
lcd.print("Tianquistenco");
delay(5000);
lcd.setCursor(0,0);
lcd.print("Energy Power");


lcd.setCursor(0,1);
lcd.clear();
}

void loop() {
 x=0;
 w=0;
 y=0;
 z=0;
 a=digitalRead(52);
 b=digitalRead(50);
 c=digitalRead(48);
 d=digitalRead(46);

if(a==LOW){
 
lcd.setCursor(0,1);
lcd.print("norte");
lcd.setCursor(0,0);
lcd.print("Energy Power");
delay(1000);
w=1;
 }
if(b==LOW){
 
lcd.setCursor(0,1);
lcd.print("sur  ");
lcd.setCursor(0,0);
lcd.print("Energy Power");
 delay(1000);
 x=1;
 }

 if(c==LOW){
   
lcd.setCursor(0,1);
lcd.print("este ");
lcd.setCursor(0,0);
lcd.print("Energy Power");
delay(1000);
y=1+x;
 }
if(d==LOW){
  delay(1000);
lcd.setCursor(0,1);
lcd.print("oeste");
lcd.setCursor(0,0);
lcd.print("Energy Power");
delay(1000);
z=1+y;
 }
 n=z;
if(n==4){
  lcd.setCursor(0,1);
lcd.print("       ");
lcd.setCursor(0,0);
lcd.print("Energy Power");
}
}

:o

J-M-L

#1
Sep 22, 2017, 08:42 am Last Edit: Sep 22, 2017, 08:43 am by J-M-L
This is the english forum here... either ask the question in English or post in the Spanish section

Also Please correct your post above and add code tags around your code:
[code] // your code is here [/code].

It should look like this:
Code: [Select]
// your code is here
(Also press ctrl-T (PC) or cmd-T (Mac) in the IDE before copying to indent your code properly)

Your program repeats itself because that's the purpose of the loop()... where you start with the lines
Code: [Select]
  x=0;
  w=0;
  y=0;
  z=0;


what do you expect?
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

rodripelto

#2
Sep 22, 2017, 10:45 am Last Edit: Sep 22, 2017, 03:27 pm by surbyte Reason: Códigos con etitqueta </> aunque sean de 1 línea
necesito ayuda mi programa se repite todo desde el comienzo es con 4 sensores y un lcd de 2x16
Hola,
¿ podrias esplicar un poco mejor que se supone que tiene que hacer el programa?

El programa se repite porque todo lo que este dentro del metodo LOOP se repite una y otra vez indefinidamente.

¿Por que float?

Code: [Select]
float w=0;
float x=0;
float y=0;
float z=0;
float n=0;


¿que valor esperas que alcancen?

¿Por que dentro del loop?
Code: [Select]
 x=0;
 w=0;
 y=0;
 z=0;

En cada ciclo se pondran de nuevo a cero ¿es lo que pretendes?

Esperamos tus comentarios.

Si alguna respuesta ha solucionado tu problema, da las gracias marcándola como solucionada.

manu_tgn

A ver, te cuento un poco por encima...

todo lo que pongas antes del void loop, son por decirlo de alguna manera, cosas que solo se van a ejecutar una vez, antes de correr el programa. Por ejemplo, declarar las variables, las entradas y salidas de tus pines, etc...

Luego viene el void setup, eso es la "puesta en marcha", aquí tienes que meter todo lo que quieres que se arranque, o se inicie, antes de empezar con el programa en si. Por ejemplo, darle un valor a una variable para que al iniciar el programa, ésta se inicie con un valor predeterminado (por ejemplo, darle HIGH al pin 13 y que arranque el programa con el led encendido, o poner un servo en posición 0 grados...). También iniciarás, si conviene, el Serial, el LCD, en general todo aquello que necesites arrancar una sola vez.


Luego viene el void loop, esto lo que hace es ejecutar todas las órdenes que le metas una y otra vez, a miles de ciclos por segundo. Aquí pondrás todo el programa, leer el estado de un pin para ver si se ha pulsado un botón, las lecturas de los pines análogicos, todo.


Básicamente esta es la estructura de un código, luego hay una serie de funciones que "pausan el loop", o realizan una función diferente y luego continúa donde se había quedado...

Conviene que leas y estudies un poco los ejemplos que te vienen, a efectos de entender qué y porqué está cada cosa en cada sitio...


Respecto a lo de que se reinicia tu programa continuamente, verás que has declarado unas variables dentro del loop, recuerda que esto va dando vueltas y ejecutando todo lo que encuentre, así que a cada vuelta, las variables las está poniendo a cero. Salvo que ese sea tu cometido, mete las variables en el setup, fuera del loop. De ese modo, cada ve que el loop se reinicie, la variable tendrá el valor que le hayas dicho la última vez, no las pondrá a cero.


Espero haberte ayudado, suerte y a seguir!

Go Up