Go Down

Topic: Led autonomo (Read 487 times) previous topic - next topic

fabpolli

#15
May 07, 2019, 09:16 am Last Edit: May 07, 2019, 09:17 am by fabpolli
EDIT
questo post è (anche) una parziale risposta a fabpolli, che proponeva di mantenere la struttura precedente
Secondo me è un errore, cavalli così malati vanno abbattuti.
Fornire il codice completo funzionante non lo ritengo molto istruttivo, il 90% degli utenti copie e incolla ok, capito quasi zero. Facendogli correggere a poco a poco il loro codice lo ritengo più istruttivo che non buttare giù il codice funzionante, ci metterei 30 secondi a farlo e invece, spesso, impegno svariate ore del mio tempo per cercare di portare gli utenti ad arrivarci da soli, poi sono punti di vista e non li discuto

Standardoil

Giusto, ma il mio codice non è ne completo ne funzionante, grazie per il complimento: significa che i miei spunti sono fatti talmente bene che sembrano programmi "veri"
Non lo sono
Qualcosa lo "dimentico"sempre...
Alle volte anche involontariamente..
Se lo OP guarda, capisce e sa mettere a posto, bene
Sennò se ne traggono conclusioni
Prima legge di Nelson (che sono io): fai le stesse cose sempre alla stessa maniera, quegli errori li hai già corretti

Non bado a studenti, che vadano a copiare da un'altra parte

Se io ti domando e tu non mi rispondi vuol dire che non ti serve più

Standardoil

E aggiungo
Se si dà uno sguardo al mio programma e a quello originale si vede che io ho cambiato una sola cosa importante.
Per il resto  e tutta roba dello OP (a parte dettagli)
Quindi non è  che ho suggerito molto...
Prima legge di Nelson (che sono io): fai le stesse cose sempre alla stessa maniera, quegli errori li hai già corretti

Non bado a studenti, che vadano a copiare da un'altra parte

Se io ti domando e tu non mi rispondi vuol dire che non ti serve più

SimoneBez

Ciao a tutti, ho potuto lavorarci poco ma alla fine sono arrivato a qualcosa.
Funziona benone e sono contento. Grazie a tutti dell'aiuto, specialmente a Standardoil che mi ha indirizzato a dovere.

Code: [Select]

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

const int button = 2;
const int led = 4;
int buttonstate;
unsigned long int starttempo;
unsigned long int tempocontato;
bool primavolta;

void setup() {
  lcd.begin (16, 2);
  pinMode (buttonstate, INPUT);
  pinMode (led, OUTPUT);
  primavolta = true;
}

void loop() {
  buttonstate = digitalRead(button);
 
    if (primavolta) {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("PRIMA VOLTA");
      lcd.setCursor(0,1);
      lcd.print("ATTESO INPUT");
      if (buttonstate ==  HIGH) {
        lcd.setCursor(0,1);
        lcd.print("PULSANE PREMUTO");     
      digitalWrite (led, HIGH);
      starttempo = millis ();
       while (buttonstate == HIGH) {
         tempocontato = millis() - starttempo;
         buttonstate = digitalRead(button);
       }
       digitalWrite(led, LOW);
       primavolta = false;   
    }
  }else {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("SECONDA VOLTA");
      lcd.setCursor(0,1);
      lcd.print("ATTESO INPUT");
      if (buttonstate == HIGH) {
        lcd.setCursor(0,1);
        lcd.print("PULSANE PREMUTO");
        digitalWrite(led, HIGH);
        delay(tempocontato);
        digitalWrite(led, LOW);   
      }
    }
}
 
   



Standardoil

grazie per aver condiviso il tuo risultato
anche perchè hai fatto un lavoro "tuo", solo ispirato ai miei suggerimenti: bravo
il che, en passant (in francese nel testo NDR), ha fugato i dubbi di chi mi aveva indicato che fornire la soluzione era deleterio
come si è dimostrato non ho fornito la soluzione e la cosa non è stata deleteria
buona giornata
Prima legge di Nelson (che sono io): fai le stesse cose sempre alla stessa maniera, quegli errori li hai già corretti

Non bado a studenti, che vadano a copiare da un'altra parte

Se io ti domando e tu non mi rispondi vuol dire che non ti serve più

torn24

In tutti i forum di programmazione c'è la regola non scritta di non fornire "la pappa pronta", personalmente ho imparato molto da esempi di codice, poi praticamente, se ho una libreria di arduino, si impara come usarla vedendo gli esempi di applicazioni pratiche piuttosto che leggendo pagine di testo.

Per farla breve avere a disposizione un codice e studiarselo, mi sembra un buon modo per imparare...

Faccio un esempio personale, se avessi dovuto imparare le liste in linguaggio C solo dalla teoria e dal testo, probabilmente non ci avrei capito niente :) Vedendo implementazioni di una lista mi è risultato abbastanza facile capire a grandi linee il concetto, poi successivamente sono andato ad approfondire i concetti che dal codice non si possono intuire, come ad esempio perché usare un puntatore a puntatore ** per inserire il nodo in testa.

A me piace imparare dagli esempi :) e quando voglio imparare vado a cercarmi esempi, penso sia qualcosa di simile a voler spiegare come è fatto un oggetto a parole, piuttosto che mostrare un immagine :)

gpb01

... difatti gli "esempi" (pezzi di codice per spiegare una cosa) sono utilissimi, la "pappa pronta" (programma completo fatto) è cosa diversa ... dato che, normalmente (fortunatamente ci sono sempre le eccezioni), l'utente copia/incolla senza capire, senza approfondire e senza apprendere nulla e la volta dopo ... pone la stessa domanda. :D

Guglielmo
Search is Your friend ... or I am Your enemy !

AmericanDreamer

Ci ho messo un poco a capirli, i programmi, ma oggi è finalmente un giorno calmo
Mi piace di più il primo, più stretto, come dire: magro
Ma non capisco cosa ci devo mettere in più per farlo andare

Federico66

[OT]
In tutti i forum di programmazione c'è la regola non scritta di non fornire "la pappa pronta", ...
... difatti gli "esempi" (pezzi di codice per spiegare una cosa) sono utilissimi, la "pappa pronta" ...
Passano gli anni, i luoghi di confronto, ma i problemi sono sempre gli stessi  :)

Molti anni fa ero molto attivo in alcuni newsgroup di programmazione e la questione "pappa pronta" era argomento che veniva fuori spesso.

Mi trovo d'accordo con Guglielmo, fornire un esempio (che aiuta a ragionare) è preferibile a fornire la soluzione, anche perchè, solitamente, la soluzione funzionante non viene studiata e molto spesso, ritornano a postare, perchè modificando qualcosa non funziona più nulla, a riprova che non hanno capito quello che hanno scritto :)

Quello che spesso non è chiaro a chi è agli inizi, è che la programmazione è studio continuo, ma è anche vero che solo chi studia va avanti :)

Naturalmente condivido anche l'opinione di torn24, anche io quando affronto cose nuove preferisco avere degli esempi funzionanti, per poi premere "F1" (ah già non esiste più) e capire cosa fa questo o quello e finalmente scrivere quello che mi serve, ma purtroppo, una buona percentuale dei frequentatori di forum (lo dico per esperienza), vuole la soluzione.

Solitamente chi vuole studiare/capire, arriva a postare solo quando veramente non riesce ad andare avanti, cioè prima di chiedere aiuto, si informa, legge vecchi post, studia i references, o almeno per me è cosi.

Ho preso Arduino due mesi fa, essendo quasi all'oscuro di elettronica e C, ho lurkato questo forum (e altri) e studiato "per esempi" tutto quello che trovavo (spesso a scapito del lavoro); ho comprato ogni sorta di sensore o modulo, li ho studiati singolarmente, ed ora, dopo due mesi sto cercando di unire tutte le conoscenze acquisite costruendo una robot car a guida remota e automatica, con sensori di vario tipo e video camera (appena mi arriva); e tutto questo solo con la volontà di cercare e studiare articoli e vecchi post in questo forum.
Ho chiesto pochissimo aiuto al forum, eppure, avendo letto tanto, vi conosco (i top poster) singolarmente, ho imparato a riconoscere chi siete dalle risposte che date ;)
Quindi grazie a tutti, perchè anche se non chiesto, mi avete dato sicuramente un aiuto!

Scusate la leccata :P, ma i ringraziamenti sono dovuti e spero ben accetti.


Per chiudere, "pappa pronta" no, o almeno, dipende anche da chi pone il problema e da come lo pone, e in questo, la presentazione aiuta molto :)

Federico

Go Up