Go Down

Topic: Problemino sketch (Read 3 times) previous topic - next topic

cece99

Sep 15, 2012, 11:13 am Last Edit: Sep 15, 2012, 11:29 am by cece99 Reason: 1
Oggi stavo preparando uno sketch per fare una centralina di luci per presepe, lo sketch non è completo ma ho già avuto dei problemi con i pulsanti che aumentano o diminuiscono il tempo di alba tramonto.
Questo è lo sketch, per il momento mostra i dati su un display lcd, a me pasta incrementare il valore delle 2 variabili che vengono stampater, x il pwm dopo mi arrangio XD.
Code: [Select]


int a = 0;
int b = 25;
int val = 0;
int val1 = 0;
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  pinMode(7, INPUT);     
  pinMode(8, INPUT);   
  lcd.begin(16, 2);
  lcd.print("Luci presepe by");
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print("Cesare Cacitti  ");
 
}

void loop() {

  delay(5000);
    val = digitalRead(7);
    if (val == HIGH) { 
    a=a+1;
  } 

      val1 = digitalRead(8);
    if (val1 == HIGH) { 
    a=a-1;
  } 

  lcd.setCursor(0, 0);
  lcd.clear();
  lcd.print("Giorno:");
  lcd.print(a);
  lcd.setCursor(0, 1);
  lcd.print("Notte:");
  lcd.print(b);

 
}

Grazie
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

leo72

E che problemi hai? Se non lo dici...  :P

Michele Menniti

è da ieri che sta dando i numeri, povero cecé, così giovane, già preda di sostanze dannose....
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

cece99


è da ieri che sta dando i numeri, povero cecé, così giovane, già preda di sostanze dannose....

praticamente se premo i bottoncini i numeri non cambiano in pratica non risponde ai miei comandi XD.
Menny, sai alla fine cos era? avevo inserito male il chip nella breadboard e faceva falso contatto (eppure l'ho inserito e disinserito una 10ina di volte -.-')
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

leo72

Perché hai messo quel delay(5000) all'inizio del loop? In questo modo la lettura dei pulsanti viene eseguita solo 1 volta ogni 5 secondi e se non cogli l'attimo esatto potresti non leggere la pressione. Se il motivo è evitare lo sfarfallio del display, metti la stampa sul display solo ogni 500/1000 ms, con un if basato su millis, ad esempio.
Inoltre come è sempre stato detto, metti 2 letture del pin separate da un piccolo delay per evitare rimbalzi del pulsantino e letture doppie/triple.

Go Up