Proyectos sugeridos
matplotlib.

//Curvas de transistores //xsetaseta@gmail.com // 26/08/2020 void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(13, OUTPUT); Serial.begin(57600); Serial.println("CURVAS"); } void loop() { int z,z1; int v0; int mA; long matrix[8][10]; for(z=0;z<8;z++) { if(z&1) digitalWrite(2, 1); else digitalWrite(2, 0); if(z&2) digitalWrite(3, 1); else digitalWrite(3, 0); if(z&4) digitalWrite(4, 1); else digitalWrite(4, 0); digitalWrite(13, 1); delay(100); digitalWrite(13, 0); for(z1=0;z1<10;z1++) { delay(15); matrix[z][z1]=analogRead(A0); } } mA=0; for(z=0;z<8;z++) { Serial.print(mA);Serial.print(","); for(z1=0;z1<10;z1++) { Serial.print( (186*matrix[z][z1])/102); Serial.print(","); } mA+=10; Serial.println(""); } }
En la parte de programación en el Arduino el funcionamiento es el siguiente:



png , blanco y negro: 
//Curvas de transistores //xsetaseta@gmail.com //17/10/2020 //http: / / seta43.duckdns.org //http: / / seta43.blogspot.com / char clave[] = "TRANSIS"; #define MAXENTRADA 50 char buffer[MAXENTRADA]; int contador=0; char stringComplete = false; void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(13, OUTPUT); Serial.begin(9600); for (char zx = 0; zx < 3; zx++) { Serial.println(clave); delay(200); } } void loop() { while (Serial.available()) { char inChar = (char)Serial.read(); buffer[contador]=inChar; if (inChar == '\n') { stringComplete = true; buffer[contador]=0; } if(contador<MAXENTRADA)contador++; } if (stringComplete) { Orden(buffer); contador=0; stringComplete = false; } } void runFuniones(void) { if(strstr(buffer,clave) ) { Serial.println("OK"); goto salir0; } if(strstr(buffer,"CURVAS")) { curvas(); goto salir0; } Serial.println("aERROR "); salir0: ; } void Orden(char *bufferS) { runFuniones(); } void curvas(void) { int z,z1; int v0; int mA; long matrix[8][10]; for(z=0;z<8;z++) { if(z&1) digitalWrite(2, 1); else digitalWrite(2, 0); if(z&2) digitalWrite(3, 1); else digitalWrite(3, 0); if(z&4) digitalWrite(4, 1); else digitalWrite(4, 0); digitalWrite(13, 1); delay(100); digitalWrite(13, 0); for(z1=0;z1<10;z1++) { delay(7); matrix[z][z1]=analogRead(A0); } } mA=0; for(z=0;z<8;z++) { Serial.print(mA);Serial.print(","); for(z1=0;z1<10;z1++) { Serial.print( (186*matrix[z][z1])/102); Serial.print(","); } mA+=10; Serial.println(""); } }