Problema con il contatore

di il
12 risposte

Problema con il contatore

Salve

Premetto che ho informazioni molto limitate su questo programma pero' con quelle poche sono riuscito tramite arduino e utilizzando firmata  a completare un programma. .
Quello che  ho notato e' che utilizzando un contatore (funziona con un codice primitivo fatto da me)con arduino non sbaglia un colpo con firmata non ne conteggia alcune.
Ho fatto diverse prove e mi sembra che diminuendo la velocita' di discesa (capsule) queste siano con firmata contate tutte..Ottengo questo facendo scendere le capsule posizionandole a mano vicino al contatore per diminuire la v di uscita.Potrebbe essere questo l'inghippo?
In tal caso si puo' intervenire aggiungendo al codice firmata una correzione'
Ringrazio dell'attenzione
Saluti

12 Risposte

  • Re: Problema con il contatore

    Salve

    Si tratta ,all'interno di un programma, del funzionamento di un contatore di piccoli oggetti es:(pastiglie,compresse,ecc.).Su arduino il contatore funziona bene.
    Ho rifatto il programma su firmata e riportando il codice di arduino  il contatore non funziona bene..Sembra che quando le capsule passano alla svelta non faccia in tempo a contarle tutte,al contrario di arduino che non presenta problemi.
    Mi chiedevo da cosa potesse dipendere.Il codice contatore e' elementare perche' le mie conoscenze in merito sono elementari
    Comunque ecco i codici su firmata e arduino:

    ...................................................................................
    contatore = FirmataVB1.DigitalRead(infrarosso)
     
    If contatore = LOW And provola = 0 Then
        count = count + 1
        TextBox2.Text = count
        provola = 1
    End If
    If contatore = HIGH And provola = 1 Then
        count = count + 0
        TextBox2.Text = count
        provola = 0
    End If ...........................................................
     
    ......................................................... 
    contatore=digitalRead(infrarosso);
       if ((contatore==LOW)&&(provola==0))
       { 
        count++;
         
        Serial.println(count);
         provola=1;
         
           }
         if ((contatore==HIGH)&&(provola==1))
         {
           count+1;
           //count=count+0;
          
          provola=0;................................................. 
  • Re: Problema con il contatore

    Nella prima If aggiungi una riga

    DoEvents

    Nella seconda If elimina le due righe

    count = count + 0
    TextBox2.Text = count

    Mail codice VB dove è stato inserito?

  • Re: Problema con il contatore

    https://www.grix.it/forum/forum_thread.php?id_forum=3&id_thread=558104

  • Re: Problema con il contatore

    Cacao… provola… ora cerco il forum con coptechino…

    Prendi spunto da qui: https://youtu.be/f4UsBV7jxRs?si=fOhKT8colsFDX3Gv

  • Re: Problema con il contatore

    Ringrazio delle risposte e dei riferimenti sempre bene accetti.
    Ricordo che firmata e' un protocollo che permette di utilizzare i programmi di arduino utilizzando la piattaforma di visual basic arricchendo cosi' arduino con la veste grafica di visual basic.Il codice di firmata e' quasi identico a quello di arduino per cui se la risposta ad un pezzo di codice di arduino su firmata non funziona bene (come nel mio caso) puo' essere la non completa compatibilita'  del codice con firmata e visual basic oppure un'anomalia  nella velocita' di trasmissione differente tra le due piattaforme.
    Dalle vostre risposte mi sembra di intuire che sia meglio rivedere il codice per renderlo piu' idoneo con firmata cosa che adesso provo a fare.
    Nel caso della differente v di risposta se avete qualche idea.....
    grazie


    @sihsandrea
    Sai che forse potrei essere stato io quello del cacao non mi ricordo dato che di progetti ne ho fatti parecchi lasciati,ripresi ecc.

    Ho visto il video e mi viene un sospetto : Forse il problema e' nel stabilire un ritardo nel conteggio…….probabilmente richiesto da firmata……

    se fosse cosi' si complica perche' visual basic non accetta delay…bho!

    Ho provato su arduino il conteggio del primo sensore secondo il video e mi risulta che se una persona rimane accanto al sensore per piu' di 300 ms. il contatore va avanti a contare….

  • Re: Problema con il contatore

    Guarda che firmata è semplicemente una libreria client e mi sembra che il tempo minimo di sampling deglj input sia di 19 ms

    Se i tuoi eventi sono più ravvicinati dovrai cambiare soluzione 

  • Re: Problema con il contatore

    Grazie c'e' sempre da imparare

    Quindi l'inghippo potrebbe essere nella diversa v di conteggio per cui se due compresse passano e tra loro c'e' un tempo < 19 ms una potrebbe saltare.

    Se su arduino invece non si verifica questa situazione e vengono contate tutte e due il tempo “minimo” e' inferiore a 19 ms.?

    Scusa se mi esprimo in maniera superficiale ma conosco poco la programmazione.

    “Cambiare soluzione” cioe' lasciare perdere firmata per il conteggio ?

    P.S. Ho fatto le mofiche che mi hai consigliato : tutto bene.

  • Re: Problema con il contatore

    È ovvio, con il codice c# eela libreria i segnali dall'input devono essere comunicati al PC e il tempo minimo di 19s mette in crisi eventuali eventi più veloci.

    Non puoi usare questa libreria se la velocità è un problema

  • Re: Problema con il contatore

    Si il delay…

    Prima di intraprendere un qualsiasi progetto è bene documentarsi.

    Vita reale: per un ritardo nel pagamento di un contributo un amico si è fatto assistere da un contabile tanto preparato da non ripassare la normativa in causa ed è stato condannato a 6 mesi ridotti a 1 come domiciliare. In appello gli è stato consigliato un avvocato che prima di parlare e accettare l'incarico ha preso un paio di libri, ha studiato lo specifico ed ha fatto assolvere a formula piena il mio amico.

    Morale: non sentirti mai troppo preparato, i migliori si documentano SEMPRE prima di iniziare.

  • Re: Problema con il contatore

    Ah, dimenticavo, valuta l'idea di utilizzare un buffer. Lasci che arduino faccia il lavoro e che poi comunichi al pc o programma il risultato.

  • Re: Problema con il contatore

    12/11/2024 - Alien ha scritto:


    “Cambiare soluzione” cioe' lasciare perdere firmata per il conteggio ?

    si. firmata lo usi per avviare il conteggio, suppongo anche comandare il rilascio del farmaco (sportelino o elica), fermare il conteggio, avviare un nuovo conteggio ecc…

    firmata permette il dialogo e i comandi ma il lavoro lo devi eseguire da arduino. 

    da firmata start, stop e leggi il conteggio.

    arduino riceve start, inizia a contare e appena riceve lo stop si ferma e invia il conteggio al pc.

  • Re: Problema con il contatore

    @sihsandrea

     Con arduino il progetto e' finito e assolutamente funzionante, si tratta di comandare con  5 sensori   3 motori che garantiscono  l'autonomia delle operazioni

    che portano al riempimento di un certo numero di barattoli e il tutto pero' comandato da arduino senza grafica e con mezzo metro di codice.

    (Carico le compresse  e i barattoli vuoti in un contenitore do il via e escono i barattoli gia' riempiti con un numero programmabile)

    Il mio intento era quello di utilizzare bottoni e altro per rendere il progetto piu' completo. Ed ecco qui firmata.

    Anche qui sarebbe tutto funzionante con un interfaccia grafica   peccato che il conteggio delle capsule non sia preciso e mi domandavo il perche'

    E' stato scritto che probabilmente il motivo era nella    velocita' di esecuzione (come immaginavo ).

    Non voglio complicare  ulteriormente il tutto.

     Se sono qui e' per risolvere un problema. 

    Che tu sappia esiste una grafica per arduino semplice che potrebbe fare al mio caso? Ho pensato a processing da cui e' nato arduino ma non so se sia possibile utilizzare il listato di arduino non penso pur avendo pero' la possibilita' di creare grafiche molto belle.

    Grazie

    P.S. Ho letto ora la tua ultima risposta la sto valutando.

Devi accedere o registrarti per scrivere nel forum
12 risposte