Arduino con alcune uscite digitali high

Salve a tutti sono Emanuel perito meccanico con la passione della tecnologia in genere.Programmo macchine utensili con Cam e a bordo macchina reparto stampi. Uso arduino uno con labview . Dopo aver caricato il firmware di NI hocominciato a fare alcune prove e sembrava che tutto funzionasse a dovere. Quando poi ho iniziato ad usare più di un pin digitale in modalita output mi sono accorto che alcuni sono già high. È una cosa normale .? Cosa devo fare per mantenerli low all' accensione come gli altri?

Grazie

Salve, Provi a dichiararlo esplicitamente con la digitalWrite dopo averli settati. Se non funziona allora non so che dire.

SI il punto e proprio questo quando io setto il pin a 1 con digitalwrite il pin va a 0 e quando do 0 lui va a uno . Non vorrei che alcuni pin fossero stato programmati dal firmwer in quel modo . Come prova cancellero il firmwer per labview Lifa base e provo a caricare blink e testare i pin uno ad uno se da defaul sono tutti low

ho appena provato ho caricato di nuovo Blink su arduino uno ed i pin che prima rispondevano male ora sono tutti settati o Low e quando li setto a 1 i pin vanno ad high. Che sia il firmware di labview? se qual cuno ipotizza una soluzione essa sara bene accetta

Non uso labview, quindi non so cosa fa il suo firmware per Arduino, immagino sia una cosa tipo la firmata che permette di controllare in remoto, tramite un protocollo seriale, i vari gpio e bus di Arduino.
All’avvio tutti i pin di Arduino sono settati come input, quindi in stato di alta impedenza e se lasciati flottanti (non collegati a nulla) l’eventuale lettura sugli stessi può dare sia 0 che 1 in modo random, se setti i pin come output devono andare allo stato logico in cui li poni, per default sono a 0, solo se li poni esplicitamente a 1 si trovano in questo stato.
Da quanto descrivi sembra che sia il firmware di labview a fare cose “strane” e non Arduino.

Penso proprio che sia il firmware per labview ma aquesto punto non saprei cosa fare.

Immagino che il software da caricare su Arduino sia fornito sotto forma di sketch, ovvero in sorgente, pertanto basta dare un'occhiata a cosa fa il codice e modificare come serve.

Ieri ho fatto un giro alla fiera dell' elettronica a Cerea ed ho parlato con il proprietario di Parsicitalia che vende materiale per arduino.Dopo aver spiegato il problema ,lui mi ha consigliato di controllare se quei pin è stata assegnata la funzione di pull up o pull down . Quindi visto che ero li ho preso un libretto per consultarlo.Ora lo leggo e poi faccio qualche esperimento e poi posto i risultati.

Su Arduino con mcu 8 bit esiste solo la possibilità della pull up e comunque vale solo per gli input, se un pin è output non ha alcun senso parlare di pullup/pulldown, come al solito chi ha parlato è uno che dal punto di vista tecnico non sa di cosa sta cianciando.

Quindi sul firmware dovrei trovare del codice con scritto : pinMode(2,INPUT_PULLUP ); E sovrasciverlo come INPUT. Comunque oggi appena mi tro a casa dal lavoro postero il firmware che ho installato su arduino uno.

Vediamo di capirci, tu affermi che stai usando dei pin settati come OUT, pertanto non esiste nessuna pullup, ovvero hai una cosa del tipo "pinMode(2,OUTPUT);", se non c'è questa inizializzazione tutti i pin sono per default degli input.

Si io imposto il pin nel modo in cui hai detto tu ma nel momento in cui leggo il pin lui mi da high

Si io imposto il pin nel modo in cui hai detto tu ma nel momento in cui leggo il pin lui mi da high

Scusa, ma sono dei pin messi come Output o Input....... visto che li leggi

questo pin e impostato come output e collegato con il modulo rele e il led del rele si accende subito a quindi presuppongo che il pin abbia un segnale high

Questo dipende dal modulo relè, molti si attivano con logica inversa

allego immagine del diagramma con labview

brunello22:
Questo dipende dal modulo relè, molti si attivano con logica inversa

Cosa c'entra il diagramma ?

E' il modulo rele che fisicamente è fatto per essere attivato con un segnale low invece che con uno high. Dai cinesi ne trovi un sacco così. Quindi tu PENSI che gli arriva un HIGH visto che vedi accendersi il suo led. Prova con un tester sul pin o ancora meglio togli il rele e mettici un led con adeguata resistenza e vedi se è il pin che sbaglia o il rele a logica inversa.

Ho provato a testare il pin ed è 5volt . Da quello che ho provato su 4 relè della sche due scattano quando scrivo 0 e due quando scrivo 1 .È il pin 2 che se io programmo 0 non deve far partire un segnal .

crestan2000:
Ho provato a testare il pin ed è 5volt .
Da quello che ho provato su 4 relè della sche due scattano quando scrivo 0 e due quando scrivo 1 .È il pin 2 che se io programmo 0 non deve far partire un segnal
.

Allego la cartella con i file di LIFA_base al cui interno c’è LIFA_base.ino il firmware che ho installato su arduino uno.

Se qualcuno puo dare una occhiata per trovare dove dove vengono settati i pin di arduino.
Speriamo che qualcuno abbia una intuizione geniale altrimenti rimarro fermo con alcuni progetti che ho in mente.
Grazie.

LIFA_Base.ino (1.88 KB)

Che ne dite se nel file Lifa_base inserisco alcune righe per settare i pin come input e poi in labview li setto come output per gestire i miei relè?