Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




arduino aiuto programmazione


Messaggi consigliati

Francesco Querin
Inserito:

ciao vi metto il mio programma qui ci sono tutti i pulsanti di ingresso e tutte le uscite del motore passo passo non metto la sequenza perché non mi da problemi

int buttonA = 5;
int buttonB = 9;
int buttonC = 11;
int tempo = 10;
int matita=digitalRead(buttonC)==HIGH;
int gomma=digitalRead(buttonC)==LOW;
void setup() {
  pinMode(buttonA, INPUT);
  pinMode(buttonB, INPUT);
  pinMode(0, OUTPUT);
  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(buttonC, INPUT);
  pinMode(13, OUTPUT);
 
}
void loop() {
  if( digitalRead(buttonA)==HIGH, gomma)
  for (int marciadestra=0; marciadestra>1000; marciadestra++)

 

 

ecco il problema

if( digitalRead(buttonA)==HIGH, gomma)
  for (int marciadestra=0; marciadestra>1000; marciadestra++)

sintassi e ok ma non funzioza e se faccio

if( digitalRead(buttonA)==HIGH, gomma)
  for (int marciadestra=0; marciadestra=1000; marciadestra++)

funziona ma non rispetta la programmazione di stop e continua ininterrottamente devo fare una programmazione di questo tipo se o quando il pulsante a e premuto fai partire un ciclo finche il pulsante c non e premuto penso di usare il ciclo for come memorizzazione della funzione, avendo appena iniziato da autodidatta e seguendo qualche video su youtube non conosco e non so come usare la programmazione conosco int long float if while do while for e qualcosa in più livello base, mi potete aiutare.

semplificando

if( digitalRead(buttonA)==HIGH)
  for (int marciadestra=0; marciadestra>1000; marciadestra++)

lo stesso non cambia niente > o < non parte con = parte ma non legge la costante gomma per cui quando il pulsante c e alto non blocca il ciclo for

 


Inserita:

Come hai dichiarato la variabile "marciadestra" e dove l'hai dichiarata?

Francesco Querin
Inserita:

if(digitalRead(buttonA)==HIGH)
  for(int marciadestra; marciadestra=digitalRead(buttonC)==LOW; )
  cosi funziona perfettamente grazie comunque ho risolto

Inserita:

for (int marciadestra=0; 1000<marciadestra; marciadestra++)

Inserita:

Mi sembra di capire che sei nuovo utente, per essere corretti qui non funziona così, hai risolto: come? Dove era errore?

Inserita:

Forse l'errore di distrazione non vuole proprio dirlo, sarebbe utile per altri

  • 4 weeks later...
Francesco Querin
Inserita:

if(digitalRead(buttonA)==HIGH)
  for(int marciadestra; marciadestra=digitalRead(buttonC)==LOW; )
  scusate ho letto ieri le netiquette e ho visto ora i commenti in questa discussione come ho gia detto l'errore era che ho metti l'inizio il numero di stop e l'incremento o dichiari la variabile e metti la variabile uguale a una lettura per l'appunto dichiarando un inizio e mettendo la variabile uguale a una lettura piu l'incremento non ti legge la lettura

 

if(digitalRead(buttonA)==HIGH)
  for(int marciadestra; marciadestra=digitalRead(buttonC)==LOW; )

scrivendo questo vedete la variabile dichiarata e la variabile messa uguale alla lettura bassa di un pulsante pensavo che avendo scritto il codice pensavo sarebbe bastato questo e invece a quanto pare bisogna scrivere anche come lo si e risolto  

 

 

 

Inserita:
Quote

invece a quanto pare bisogna scrivere anche come lo si e risolto

 

Non è obbligatorio, è solo una gentilezza nei confronti di chi ha risposto; in genere predispone meglio per le future collaborazioni.

Francesco Querin
Inserita:

capito, pensavo che avendo scritto il programma si capisse come ho risolto, comunque scrivo anche a parole per maggiore chiarimento

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...