Ciao a tutti
come da titolo, ho recuperato un MOT di un micronde e finalmente mi volevo fare una puntatrice , mi capita di preparare dei pacchi batterie e usarla anche per lamiera sottile, ne volevo fare una di tipo ad impulsi , gestita da arduino e ho cercato in rete qualche progetto, ne ho trovato un paio e tra questi ne ho trovato uno interessante, in pratica visualizza i 3 tempi , 1 impulso -pausa- 2 impulso , la regolazione è fatta tramite un pulsante di selezione menu e un potenziometro per regolare i valori, poi c'è il pulsante "saldatura", il progetto prevede un Arduino nano , display 16x2 , un rele SSR, potenziometro e 2 pulsanti.
Il progetto lo trovato su un forum di bici elettriche , l'autore ha messo sia il codice che lo schema liberi, ho cercato di conttatare l'autore per chiedergli delle informazioni ma mai risposto, perchè volevo fare una piccola modifica e se lui mi poteva dare un aiuto.
La mia modifica è questa : in pratica voglio aggiungere un interrutore che mi selezioni una modalità manuale, magari sul display mi visualizza " manuale " e il rele SSR mi alimenta il MOT per il tutto il tempo che tengo premuto il pulsante "saldatura"
Io ho iniziato a leggere delle guide su Arduino , ma ho difficoltà a capire alcune strutture che sono all'interno dello sketch e dove poter inserire le istruzione per aggiungere l'opzione manuale.
Per ora l'unica cosa che ho fatto è verificare lo sketch su IDE arduino non presenta errori, arduino e display mi devo arrivare quindi non ho fatto nessuna prova su basetta sperimentale e caricando lo sketch.
Qualcuno mi può aiutare a fare questa modifica?
copio il codice e lo scrivo qui come listato ? oppure aggiungo il file del codice?
---------------
fly1971
MegaWatt
Utente Msg:544
Stato:
Inviato il: 20/03/2019 21:29:20
#define imax 300 // tempo massimo impulso
#define pts 500 // pausa tra saldature in ms
#define _SSR 9 // Pin dove è collegato il relay a stato solido
#define debug true
#define potenziometro A0
byte ci=0; // contatore array impulsi
int impulsi[3]={0,0,0}; // durata in ms del primo impulso
// ************************************** Pulsante con pull up interno {
#define premuto 1
#define rilasciato 2
#define trattenuto 3
struct pulsante_pu // con resistenza di pull-up interna
{
pulsante_pu(byte _pin); // numero pulsante capacitivo mpr121 (0..11)
byte cont; // contatore intervalli di tempo
byte pin; // numero pulsante capacitivo mpr121 (0..11)
byte controlla(byte _time); // controlla se viene premuto o rilasciato un tasto è memorizza le informazioni su stato (tasto premuto) e cont(tempo di pressione del tasto)
void reset(); //resetto tasto
byte stato,stato_old; //0 = nada; 1=premuto; 2=trattenuto;
boolean nuovo_stato; // se vera c'è stato un cambiamento di stato
};
byte pulsante_pu::controlla(byte time=10) //numero intervalli da 100ms per determinare se il tasto è trattenuto di default è 10
{
nuovo_stato=false;
stato_old=stato;
stato=0;
if (!digitalRead(pin))
{
if (cont<254) cont+=1; // incremento il tempo
if (cont==1) stato=premuto;
if (cont==time) stato=trattenuto;
}
else
if (cont>0) // controllo se è stato rilasciato un tasto
{
if (cont
---------------
fly1971
MegaWatt
Utente Msg:544
Stato:
Inviato il: 20/03/2019 22:05:32
da quel poco che sono riuscito a capire , c'è la sruttura pulsante-pu che definisci se contato il tempo se il tasto è trattenuto o premuto
dopol definizioni dei 2 pulsanti , legge se ci sono variazioni nei valori c on il potenziometro , salva i valori in eprom e poi aggiorni la visualizazione del display , poi c'è il blocco dell'impulso e poi il blocco dell eprom.
Pensavo di inserire un istruzione di un interruttore che mi leggeva se un pin era a valore alto o basso e poi in base a questo se procedere in manuale o a impulsi, però è da mettere prima della struttura pulsante-pu o dopo .
Un altra soluzione è quella di aggiungerlo al menù , cosi una volta selezionato si passa in madolità manuale