Transistor BJT
Un transistor è un dispositivo elettronico a tre terminali: base, collettore e emettitore,
a volte anche chiamato BJT.
E’ formato unendo 3 strati NPN o PNP. La versione NPN è quella più usata.
Ponendo l’emettitore a massa si dice che la il transistor è viene usato con la configurazione “emettitore comune”.
La sua caratteristica principale è quella di essere pilotato in corrente, a differenza del JFET che è, invece, pilotato dalla tensione.
Il transistor ha due possibili utilizzi: interruttore controllato o amplificatore lineare .
Interruttore controllato
Se la corrente nella base è nulla allora anche le correnti nel collettore e nell’emettitore
sono nulle. Lo si può vedere come un interruttore aperto tra collettore ed emettitore. In questo caso si dice che il transistor è in “interdizione“.
Se la corrente nella base è sufficiente, si ha una corrente che entra nel collettore ed esce dall’emettitore, quindi è come se si avesse un interruttore chiuso tra collettore ed emettitore.
A differenza di un normale interruttore, la corrente può scorrere tra Collettore ed Emettitore ma non viceversa (si noti il verso della freccia sull’emettitore). La corrente di base può essere solo entrante. Si ha che la corrente del collettore è uguale alla corrente della base sommata alla corrente dell’emettitore.
In questo caso si dice che il transistor è in “saturazione“.
Amplificatore lineare
Il seguente grafico mostra la corrente di collettore Ic in funzione della tensione Vce, mantenendo costante la Ib
All’aumentare della Vce, inizialmente la Ic è zero; poi aumenta linearmente e rapidamente fino al ginocchio; superato il ginocchio, la Ic resta praticamente costante, anche se aumenta la Vce,come se fosse un interruttore chiuso.
Si nota che, in base alla corrente di base, mantenendo costante la Vce, possiamo controllare la Ic, e variarla in modo lineare.
Quindi alimentando il collettore con una certa tensione e la base con un altra, possiamo con una piccola Ib controllare, e quindi anche aumentarla (amplificarla), una grande Ic.
Per una spiegazione più approfondita, qua troverete un ottimo tutorial.
Elettronica di Base: Generatori Continua
Esistono due tipi di generatori in continua: di tensione e di corrente.
Generatore di tensione
Lo scopo principale di questo generatore è fornire una tensione costante, detta di targa, a prescindere da quale sia il carico collegato. Per poter fare questo, essendo V=R*I, variare la corrente in base al carico.
Nel caso in cui si abbia un R piccolissima, o un corto circuito, il generatore dovrà erogare una corrente altissima, nel far questo o si romperà o salterà qualche fusibile di protezione.
Quindi riassumendo avremo:
- la tensione in uscita dipende ESCLUSIVAMENTE dal generatore, e non dal carico.
- la corrente in uscita dipende ESCLUSIVAMENTE dal carico, e non dal generatore.
Nel 99% dei casi si ha a che fare con generatori di tensione.
Generatore di corrente
In questo caso è la corrente che deve rimanere sempre costante. Per fare ciò, il generatore varierà la tensione. Quindi nel caso di un circuito aperto la tensione salirà fino a quando o si rompe o scattano dei circuiti di sicurezza che fanno scaricare la tensione accumulata.
Riassumendo, nel caso di un generatore di corrente si ha:
- la corrente in uscita dipende ESCLUSIVAMENTE dal generatore, e non dal carico.
- la tensione in uscita dipende ESCLUSIVAMENTE dal carico, e non dal generatore.
Android: Grafica 2D, le basi
I compontenti di base per poter fare grafica 2D con android sono:
la View, che tramite le chiamate al suo metodo onDraw ci permette di ridisegnare lo schermo.
il Canvas, la classe che contiene le api fondamentali per disegnare (es. drawLine(), drawCircle(), etc.) su una immagine(bitmap) .
la Bitmap, che contiene i pixel, ossia l’immagine vera e propria.
un Paint, che descrive i colori e gli stili per disegnare.
con l’esempio sotto disegniamo un rettangolo rosso
Bitmap bitMapEsempio = BitmapFactory.decodeResource(res, R.drawable.qualche img);
Canvas canvasMaschera = new Canvas(bitMapEsempio);
Paint paint = new Paint();
paint.setColor(Color.RED);
canvasMaschera.drawRect(left, top, right, bottom, paint);// se paint è null si hanno immagini opache
non alllocare troppi oggetti nel metodo View.onDraw, questo metodo viene richiamato tante volte, e quindi potrebbe rallentare di molto l’app.
Hibernate: Strategie di Fetch
Android: Toast con Immagine e vibrazione
Codice per visualizzare un Toast di Android con una immagine e vibrazione:
package com.AndroidImageToast;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class ImageToastExample extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast toast1 = new Toast(getBaseContext());
LinearLayout toastLayout = new LinearLayout(getBaseContext());
toastLayout.setOrientation(LinearLayout.HORIZONTAL);
ImageView image = new ImageView(getBaseContext());
TextView text = new TextView(getBaseContext());
image.setImageResource(R.drawable.radiazioni);
toastLayout.addView(image);
toastLayout.addView(text);
toast1.setView(toastLayout);
toast1.setGravity(Gravity.CENTER | Gravity.CENTER, 0, 0);
Vibrator v = (Vibrator) getApplicationContext()
.getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(300);
Arduino: Luminosità Led Con Potenziometro
L’esperimento consiste nel regolare, tramite potenziometro, l’intensità della luce emessa da un LED.
Materiale richiesto:
1 resistenza 1KOhm
1 potenziometro
1 led
e ovviamente un arduino.
Piccolo ripasso dei componenti:
Potenziometro, fondamentalmente è un dispositivo che permette di variare la resistenza, e quindi la quantita di corrente che attraversa il circuito, tramire una semplice manopola. O meglio, non regola la quantita di corrente ma bensi la tensione. Infatti le resistenze NON bloccano la corrente! come per tutti i bipoli elettrici, si ha che I(in) = I(out), sempre!
Quello che fanno è assorbire della potenza e provocare una caduta di tensione ai capi. Ricordiamo che la prima legge di Ohm è V=R*I, essendo I costante variando R variamo la V.
Led, è un compontente che sviluppa luce al passaggio di corrente. O meglio, il led si comporta come un conduttore perfetto quando si applica una tensione in un certo modo (polarizzazione diretta), e diventa un isolante quando si inverte la tensione (polarizzazione inversa) . Tutto questo in teoria, nella realtà, osservando la curva corrente-tensione di un diodo, si nota che la conduzione in polarizzazione diretta
è possibile solo superando una tensione di soglia Vg. Il polo positivo è detto anodo, quello negativo catodo. La polarizzazione diretta è quando si applica il positivo all anodo e il negativo al catodo
Riassumento e semplificando, possiamo considerare questo dispositivo dal suo aspetto funzionale (ideale) come un interruttore, il quale risulta essere chiuso quando è polarizzato direttamente (quindi percorso da una determinata intensità di corrente) ed aperto quando è polarizzato inversamente (non consente il passaggio di intensità di corrente, nel caso ideale).
Schema elettronico
Per quanto riguarda la parte software abbiamo
int valore = 0; int pinPonteziometro = A0; int pinLed = 9; void setup() { pinMode(pinPonteziometro, INPUT); // pin potenziometro pinMode(pinLed, OUTPUT); // pin led Serial.begin(9600); // inizializza il collegamento seriale } void loop() { valore = analogRead(pinPonteziometro); // legge il valore analogico del //potenziometro Serial.print("Valore letto dal potenziometro:"); Serial.println(valore); // Stampa il valore letto if (valore > 255) digitalWrite(pinLed, HIGH); //accende il led if (valore < 0) digitalWrite(pinLed, LOW); //spegne il led if (valore > 0 && valore < 255) digitalWrite(pinLed, valore); // intensita luminosa del led uguale al valore letto dal potenziometro delay(1000); // aspetta 1000 millisecondi, ossia un secondo }
da notare che la luminosità del led può assumere valori che vanno da 0 a 255, mentre i valori del potenziometro vanno fino a 1024, se non sbaglio, ecco spiegato il perchè delle if.
Uno sketch è composto da due funzioni: setup() che serve a inizializzare le varie componenti e loop() che viene eseguita in continuazione su arduino. Altre funzioni native di arduino sono:
- digitalWrite(a1,a2), comunica al pin digitale a1 di assumere il valore a2
- analogRead(a1), legge il valore analogico dalla porta a1.