arduino uno:è possibile cambiare un pin digitale da 5 volt a 12 volt??

ciao ragazzi...scusate il disturbo ma volevo sapere solo se è possibile cambiare il valore di un pin digitale(3) da 5volt a 12 volt?
sto facendo un progetto con arduino uno in cui tramite un pulsante regolo la luminosità e tramite un altro pulsante lo accendo e spengo.
ho creato questo progetto (funzionante)utilizzando un led a 5 volt e ora volevo fare la stessa cosa con una serie di led che funzionano a 12 volt,come posso fare??grazie

Da quelli che ho capito vuoi fare entrare 12 volt in un pin di arduino? se è cosi purtroppo non puoi, se lo fai bruci l' ingresso

usa un transistors è un alimentazione esterna,
dai un occhiata qui Gioblu.com is for sale | HugeDomains

Ma perchè nessuno lavora mai di "ZERO"?

Diodo con il katodo verso il pulsante, anodo entra nel Pin Arduino, resitenza di pull-up che tiene a 1 l'ingresso e va a zero quando si schiaccia il pulsante (collegato a massa).

Si evitano traffici incredibili per adattare tensioni.

Ne parlavo ieri con un Ingegnere che addirittura voleva usare un Chip apposito per la conversione di valori tra PLC a 12V che entravano in un MCU a 3,3V.

Ma czzo! Basta lavorarare con gli 0, di logica negativa!!!!

Toh! Una roba così:


oibboz:
Da quelli che ho capito vuoi fare entrare 12 volt in un pin di arduino? se è cosi purtroppo non puoi, se lo fai bruci l' ingresso

no..io voglio che da un pin di arduino escano 12 volt o fare una cosa simile...cioè: ad esempio il pin 3 (digitale) deve essere un OUTPUT di 12V o non di 5V....cmq grazie per i consigli, li proverò tutti :slight_smile:

tecnico3, per fare quello basta un transistor pilotato dal pin a 5V di Arduino e alimentato a 12V.

Se non ti è chiaro ti posto uno schemino.

BaBBuino:
tecnico3, per fare quello basta un transistor pilotato dal pin a 5V di Arduino e alimentato a 12V.

Se non ti è chiaro ti posto uno schemino.

gli ho postato un intero link perchè sono stato ignorato? :roll_eyes:

BaBBuino:
tecnico3, per fare quello basta un transistor pilotato dal pin a 5V di Arduino e alimentato a 12V.

Se non ti è chiaro ti posto uno schemino.

se me lo fai uno schema ti ringrazio..purtroppo di elettronica so ancora poco :frowning: e poi cosi è sicuro che non sbaglio niente :wink: cmq stavo vedendo anche il link di Madwriter

Madwriter:

BaBBuino:
tecnico3, per fare quello basta un transistor pilotato dal pin a 5V di Arduino e alimentato a 12V.

Se non ti è chiaro ti posto uno schemino.

gli ho postato un intero link perchè sono stato ignorato? :roll_eyes:

non sei stato ignorato...sto vedendo il tuo link, solo che mi sto perdendo in un bicchiere d'acqua

tecnico3:

Madwriter:

BaBBuino:
tecnico3, per fare quello basta un transistor pilotato dal pin a 5V di Arduino e alimentato a 12V.

Se non ti è chiaro ti posto uno schemino.

gli ho postato un intero link perchè sono stato ignorato? :roll_eyes:

non sei stato ignorato...sto vedendo il tuo link, solo che mi sto perdendo in un bicchiere d'acqua

cosa non capisci?
comunque basta una ricerca http://www.giurob.it/sito/elettronica/digitale/transistor/tr_onoff.htm

tecnico3:
no..io voglio che da un pin di arduino escano 12 volt o fare una cosa simile...cioè: ad esempio il pin 3 (digitale) deve essere un OUTPUT di 12V o non di 5V....cmq grazie per i consigli, li proverò tutti :slight_smile:

Non puoi farlo. Dai pin può uscire solo una tensione (quasi) pari a quella operativa, che sull'Arduino è di 5V.

Non puoi farlo. Dai pin può uscire solo una tensione (quasi) pari a quella operativa, che sull'Arduino è di 5V.

[/quote]
ah ok..ho capito!!ora mi stavo un po documentando girando su un po di siti per vedere come poter fare ad alimentare la mia striscia di led (a 12V) con un transistor e riuscire a cambiare l'intensità della luce attraverso un pulsante o un potenziometro...grazie raga per i consigli :slight_smile:

la piloti in uno di questi due modi

La cosa veramente importante quando si vuole AIUTARE veramente qualcuno è capire il suo livello apprenditivo.Inutile farte sfoggio accademico, se poi dall'altra parte si generano più dubbi di prima, (però si è fatta una bella figura con il mondo...) e magari per non apparire wstuipidi, si annuisce anche...

Ora che ho caspito che sei nabbissmo posso adattare la risposta al tuo livello.

Probabilmente ti mancano anche le nozioni base di Elettronica, quindi è più difficile per noi spiegarti qualcosa che per te capire.

Per far pilotare ad Arduino un carico che assorbe una "certa" corrente o funzionaa tensioni più alte, si deve usare un tlaslatore di livello, un adattatore di impedenza, un buffer, un amplificatore di corrente e/o tensione, un disaccoppiatore, un gnientometro alcalizzato...
Insomma, un sacco di parole che alla fine dobbiamo capire con semplicità e qualche analogia.

Questo è il transistor collegato come ti serve, e puoi chiamarlo come vuoi, con uno di quei nomi di cui sopra, ma l'importante è che capisci che un aggeggino come Arduino non può avere la "forza" per pilotatre direttamente un affare come questo:

Ovviamente dovrai avere qualche oggetto esterno (Amplificatore) che, presi i 5 miseri volt e i pochi milliamper di uscita, li trasformi in qualcosa di "potenza" per gestire, comandare qualcosa che necessita di potenze "grandi".

Questo Amplificatore può essere fatto in tanti modi, non c'è nè in assoluto uno meglio di un altro, ma deve essere dimensionato (calcoli e formule alla mano o, almeno, una buona dose di esperienza nel campo che consente di valutare "a occhio").

Ora tu hai 5V di Arduino, e una lampadina a 12V, lo capisce anche una capra, è "più potente" dei 5V disponibili dal chip di Arduino.

Allora devi usare un aggeggio che prenda i 5V (se li faccia bastare) e dall'altro lato maneggi i 12V (e anche la corrente che succhia) della lampadina.

Eccolo qua:

Un Transistor che si "accende" con i 5v sull abase, e fa passare la massa, il meno, da "sotto" verso il carico (il positivo, il +, gli arriva da sopra diretto).

0V è la massa, la GND che è la stessa di Arduino, mentre la VS sono i 12V (o qualsiasi altra tensione). RL (Load = carico) è il tuo utilizzatore, che può essere un relè a 12V o una lampadina a 12v.

Più semplice di così è dura...

grazie tante..ho seguito i vostri schemi e ho un piccolo problema: ho due pulsanti tra cui uno mi deve accendere e spegnere la striscia di led(ON/OFF) e l'altro deve regolare la luminosità...il pulsante ON/OFF in realtà non funzione correttamente perchè o mi aumenta la luminosità o me l'abbassa di poco e i led sono sempre accesi, mentre l'altro pulsante(quello che regola le varie tonalità di luce funziona)...in poche parole non riesco a fare ON/OFF...secondo voi qual è il problema??lo sketch non è perchè ho provato lo stesso utilizzando un led a 5V e funzionava tutto

images arduino 1.jpg

lo schema quello con il transistor di tipo PNP, non l'ho fatto perchè ho solo quello di tipo NPN...credete che sia quello il mio problema??cioè il pulsante ON/OFF non funziona al 100% perchè non ho usato il transistor PNP?

No, deve funzionare anche con il solo pnp. E poi cosa vuol dire che non funziona al 100%?
Fai prima a postare il tuo schema.

tecnico3:
lo schema quello con il transistor di tipo PNP, non l'ho fatto perchè ho solo quello di tipo NPN...credete che sia quello il mio problema??cioè il pulsante ON/OFF non funziona al 100% perchè non ho usato il transistor PNP?

Senza vedere lo sketch è impossibile rispondere alla tua domanda, per spegnere i led non devi fare altro che portare la base del transistor a una tensione minore di 0.6V, ovvero basta che poni il relativo pin a 0 logico.

SKETCH:

/*
2 pulsanti disponibili che permettono di agire su un led spegnendo e accendendo (P1) il led oppure regolarne la luminosità (P2)
*/
#define PIN_TRANSISTOR 3
int Stato = 0;    //Stato Pulsante
int Val_PWM = 125; //Valore luminosità led per PWM (0-255)
int Accendi = 0;   //0: Accendi LED - 1: Spegni LED
int Inc_Dec = 1;   //0: Decremento luminosità - 1: Incremento luminosità
int TEMPO = 20;    //Tempo ritardo cambiamento luminosità (max 255)
const int P1 = 10;    //Pulsante ON/OFF
const int P2 = 11;    //Pulsante senso luminosità 
const int TRANSISTOR = 3;
void setup()  
{ 
  pinMode(TRANSISTOR, OUTPUT);  //Impostazione PIN come uscita
  pinMode(P1, INPUT);  //Impostazione PIN come ingresso 
  pinMode(P2, INPUT);  //Impostazione PIN come ingresso 
  digitalWrite(P1, HIGH);  //Abilitazione pull-up
  digitalWrite(P2, HIGH);  //Abilitazione pull-up
} 

void loop()  
{ 
  //Lettura stato pulsante 1 (Accensione/Spegnimento)
  //Accensione/spegnimento LED in base allo stato pulsanti
  if (digitalRead(P1) == LOW) 
  {     
    if (Accendi == 0)  //Se led Spento lo accendo 
    {
      Accendi=1; 
      analogWrite(TRANSISTOR, Val_PWM);  //Imposto luminosità LED    
    }
    else  //Se led spento lo accendo
    {
      Accendi=0;
      analogWrite(TRANSISTOR, 0);
    }  
  } 
  while (digitalRead(P1) == LOW)
  {
    delay(10);  //Attesa 100ms
  }
  
  //Lettura stato pulsante 2 (Regolazione senso luminosità)
  while (digitalRead(P2) == LOW) 
  {     
    if (Val_PWM == 255) 
    {
      //Cambio senso, da Incremento a Decremento luminosità
      Inc_Dec=0;   
    }
    if (Val_PWM == 0) 
    {
      //Cambio senso, da Decremento a Incremento luminosità
      Inc_Dec=1;   
    }
    
    if (Inc_Dec == 1)  //Incremento luminosità
    {
      Val_PWM = Val_PWM + 1;      
    }
    else  //Decremento luminosità
    {
      Val_PWM = Val_PWM - 1;
    } 
    analogWrite(TRANSISTOR, Val_PWM);  //Imposto luminosità LED
    delay(TEMPO);  //Attesa    
  }
}

sicuro di aver collegato la resistenza dal pin 3 alla base del transistor ?
mi sembra messa sul collettore