hola, necesito ayuda con la siguiente cuestión. Aclaro antes de empezar, que no estudio programación ni nada similar, sólo lo que aprendo de ver videos y con prueba y error..
necesito hacer que mi variable "score" que se muestra en el LCD pueda reflejar la suma constante al activarse los botones de los pines 7, 8 y 9 (supongamos que sume de a 10 puntos) y que al activarse el 6, reste 100.
en el siguiente ejemplo, de la forma que lo hice, funciona bien el tema de sumar
#include <Adafruit_NeoPixel.h>
#include <Adafruit_LiquidCrystal.h>
#define PIN 2 // input pin Neopixel is attached to
#define NUMPIXELS 12 // number of neopixels in strip
Adafruit_LiquidCrystal lcd(0);
Adafruit_NeoPixel ti = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
long color = ti.Color(255, 0, 0);
int score = 0;
void setup() {
lcd.begin(16, 2);
pinMode(4,INPUT);
ti.begin();
}
void loop()
{
lcd.setCursor (8,1);
lcd.print(score);
if (digitalRead(4) ==HIGH){{
score = score + 10;
ti.fill(color);
ti.show();
delay(100);
ti.clear();
ti.show();
}
}}
ahora cuando quiero volcar esto en el proyecto, ya no se si es por exceso de codigo o que pero no va...
por otro lado, cuando logre que el display la refleje sumando, es como que no se adapta a la pantalla y se va a cualquier lado...
cualquier ayuda, me sirve para seguir aprendiendo.
muchas gracias!!
dejo el codigo del proyecto principal
#include <Adafruit_NeoPixel.h>
#include <Adafruit_LiquidCrystal.h>
#include <Servo.h>
#define PIN 10
#define PIN2 11
#define PIN3 12
#define NUMPIXELS 12
Adafruit_LiquidCrystal lcd(0);
Adafruit_NeoPixel ti = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel me = Adafruit_NeoPixel(NUMPIXELS, PIN2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel de = Adafruit_NeoPixel(NUMPIXELS, PIN3, NEO_GRB + NEO_KHZ800);
int pos=0, pos1=45, pos2=180, pos3=0, score;
Servo palizq;
Servo palder;
long color = ti.Color(200,100,80);
long color1 = me.Color(80,100,200);
long color2 = de.Color(20,50,20);
long color3 = ti.Color(255,0,0) & me.Color(255,0,0) & de.Color(255,0,0);
void setup()
{
palizq.attach(5);
palder.attach(4);
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(6,INPUT);
pinMode(A0,OUTPUT);
pinMode(A1,OUTPUT);
pinMode(7,INPUT);
pinMode(8,INPUT);
pinMode(9,INPUT);
pinMode(10,OUTPUT);
palizq.write(pos);
palder.write(pos2);
lcd.begin(16,2);
lcd.setBacklight(1);
lcd.setCursor(3,0);
lcd.print("BIENVENIDO");
lcd.setCursor(3,1);
delay(10);
lcd.print("JUGADOR 1!");
delay(1500);
lcd.setBacklight(0);
lcd.clear();
delay(50);
lcd.setCursor(2,0);
lcd.setBacklight(1);
lcd.print("ESTAS LISTO?");
delay(1000);
lcd.clear();
lcd.setCursor(3,0);
lcd.print("COMENCEMOS");
delay(200.);
tone (A1,440,2000);
lcd.setBacklight(0);
delay(1000);
tone (A1,494,2000);
lcd.setBacklight(1);
delay(1000);
tone (A1,440,2000);
lcd.setBacklight(0);
delay(1000);
lcd.setBacklight(1);
delay(1000);
lcd.clear();
lcd.setCursor(3,0);
lcd.print("JUGADOR 1");
lcd.setCursor(1,1);
lcd.print("Puntos");
lcd.setCursor(12,1);
lcd.print(score);
ti.begin();
me.begin();
de.begin();
}
void loop ()
{
if (digitalRead(2) ==HIGH){
palizq.write(pos1);
delay(1);}
if (digitalRead(2) ==LOW){
palizq.write(pos);
delay(1);}
if (digitalRead(3) ==HIGH){
palder.write(pos3);
delay(1);}
if (digitalRead(3) ==LOW){
palder.write(pos2);
delay(1);}
{
if (digitalRead(6) ==HIGH){
digitalWrite(A0,HIGH);
tone (A1, 261 , 100);
delay(1);}
if (digitalRead(6) ==LOW){
digitalWrite(A0,LOW);
delay(1);}
if (digitalRead(7) ==HIGH){
ti.fill(color);
ti.show();
delay(150);
ti.clear();
ti.show();
}
if (digitalRead(8) ==HIGH){
me.fill(color1);
me.show();
delay(150);
me.clear();
me.show();
}
if (digitalRead(9) ==HIGH){
de.fill(color2);
de.show();
delay(150);
de.clear();
de.show();
}
if (digitalRead(6) ==HIGH){
de.fill(color3);
ti.fill(color3);
me.fill(color3);
de.show();
ti.show();
me.show();
delay(150);
de.clear();
ti.clear();
me.clear();
de.show();
ti.show();
me.show();
delay(150);
de.fill(color3);
ti.fill(color3);
me.fill(color3);
de.show();
ti.show();
me.show();
delay(150);
de.clear();
ti.clear();
me.clear();
de.show();
ti.show();
me.show();}
}}