Plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar.
Jaime Alonso Lorenzo @Jaime Offline #1
Comparto con vosotros lo que hice ayer, basándome en el ejemplo de BarGraph de los ejemplos resueltos de Arduino :)

Controlar un display de 7 segmentos con un potenciómetro

Siguiendo este esquema (yo usé el display de cátodo común):
Imagen

- Se conecta el potenciómetro, a la masa y a los 5V, y el pin del centro a la entrada analógica A0.
Se conectan las patillas del display así:
- Las dos centrales a masa.
- Pin 2: patilla g
- Pin 3: patilla d
- Pin 4: patilla a
- Pin 5: patilla c
- Pin 6: patilla b
- Pin 7: patilla f
- Pin 8: patilla e

Se usa este código:
Código: Seleccionar todo
  1. const int analogPin = A0;
  2. const int ledCount = 7;
  3. int ledPins[] = {
  4.   2, 3, 4, 5, 6, 7,8 };
  5.  
  6. void setup() {
  7.   for (int thisLed = 0; thisLed < ledCount; thisLed++) {
  8.     pinMode(ledPins[thisLed], OUTPUT);
  9.   }
  10. }
  11. void loop() {
  12.    int sensorReading = analogRead(analogPin);
  13.    int ledLevel = map(sensorReading, 0, 1023, 0, 10);
  14.    switch(ledLevel){
  15.     case 0:
  16.       digitalWrite(2, LOW);
  17.       digitalWrite(3, HIGH);
  18.       digitalWrite(4, HIGH);  
  19.       digitalWrite(5, HIGH);
  20.       digitalWrite(6, HIGH);
  21.       digitalWrite(7, HIGH);
  22.       digitalWrite(8, HIGH);
  23.       break;
  24.      case 1:
  25.       digitalWrite(2, LOW);
  26.       digitalWrite(3, LOW);
  27.       digitalWrite(4, LOW);  
  28.       digitalWrite(5, HIGH);
  29.       digitalWrite(6, HIGH);
  30.       digitalWrite(7, LOW);
  31.       digitalWrite(8, LOW);
  32.       break;
  33.       case 2:
  34.       digitalWrite(2, HIGH);
  35.       digitalWrite(3, HIGH);
  36.       digitalWrite(4, HIGH);  
  37.       digitalWrite(5, LOW);
  38.       digitalWrite(6, HIGH);
  39.       digitalWrite(7, LOW);
  40.       digitalWrite(8, HIGH);
  41.       break;
  42.      case 3:
  43.       digitalWrite(2, HIGH);
  44.       digitalWrite(3, HIGH);
  45.       digitalWrite(4, HIGH);  
  46.       digitalWrite(5, HIGH);
  47.       digitalWrite(6, HIGH);
  48.       digitalWrite(7, LOW);
  49.       digitalWrite(8, LOW);
  50.       break;
  51.      case 4:
  52.       digitalWrite(2, HIGH);
  53.       digitalWrite(3, LOW);
  54.       digitalWrite(4, LOW);  
  55.       digitalWrite(5, HIGH);
  56.       digitalWrite(6, HIGH);
  57.       digitalWrite(7, HIGH);
  58.       digitalWrite(8, LOW);
  59.       break;
  60.      case 5:
  61.       digitalWrite(2, HIGH);
  62.       digitalWrite(3, HIGH);
  63.       digitalWrite(4, HIGH);  
  64.       digitalWrite(5, HIGH);
  65.       digitalWrite(6, LOW);
  66.       digitalWrite(7, HIGH);
  67.       digitalWrite(8, LOW);
  68.       break;
  69.      case 6:
  70.       digitalWrite(2, HIGH);
  71.       digitalWrite(3, HIGH);
  72.       digitalWrite(4, HIGH);  
  73.       digitalWrite(5, HIGH);
  74.       digitalWrite(6, LOW);
  75.       digitalWrite(7, HIGH);
  76.       digitalWrite(8, HIGH);
  77.       break;
  78.      case 7:
  79.       digitalWrite(2, LOW);
  80.       digitalWrite(3, LOW);
  81.       digitalWrite(4, HIGH);  
  82.       digitalWrite(5, HIGH);
  83.       digitalWrite(6, HIGH);
  84.       digitalWrite(7, LOW);
  85.       digitalWrite(8, LOW);
  86.       break;
  87.      case 8:
  88.       digitalWrite(2, HIGH);
  89.       digitalWrite(3, HIGH);
  90.       digitalWrite(4, HIGH);  
  91.       digitalWrite(5, HIGH);
  92.       digitalWrite(6, HIGH);
  93.       digitalWrite(7, HIGH);
  94.       digitalWrite(8, HIGH);
  95.       break;
  96.      case 9:
  97.       digitalWrite(2, HIGH);
  98.       digitalWrite(3, HIGH);
  99.       digitalWrite(4, HIGH);  
  100.       digitalWrite(5, HIGH);
  101.       digitalWrite(6, HIGH);
  102.       digitalWrite(7, HIGH);
  103.       digitalWrite(8, LOW);
  104.       break;
  105.    
  106.    }
  107.  
  108. }


Lo transferimos mediante el IDE del Arduino y listo :)

Resultado final:
Avatar de Usuario
Administrador
Dios
Nov 2010 | 1880 Mens.
Los siguientes usuarios han agradecido a Jaime este post
Gerardo (24 Feb 2012, 15:54), sroca (24 Feb 2012, 16:09), Alex (24 Feb 2012, 17:52)


Rodrigo Zarza @Zarza Offline #2
Muy bueno Jaime, ya lleváis el tema avanzado por lo que veo. Lo que tengo claro es que tengo que ir a comprar un lcd o al menos un display como ese.
Tienen algún nombre específico o entro por la tienda diciendo... quiero un LCD para un Arduino

Pepotis, probaré lo que me dices, pero antes de nada, alguien es tan amable de decirme como se llama cada uno de los componentes que viene, y su uso? O si alguno de los manuales que tenemos en Dropbox contiene esta info.

Afán emprendedor? Nos sobra jaja, si por nosotros fuese, ya habríamos dominado el mundo.
Simracer para: 7thRacing
Linkin' Unit
Avatar de Usuario
Veterano
Arduino
May 2011 | 982 Mens.

Jaime Alonso Lorenzo @Jaime Offline #3
Zarza escribió:
Muy bueno Jaime, ya lleváis el tema avanzado por lo que veo. Lo que tengo claro es que tengo que ir a comprar un lcd o al menos un display como ese.
Tienen algún nombre específico o entro por la tienda diciendo... quiero un LCD para un Arduino

Pepotis, probaré lo que me dices, pero antes de nada, alguien es tan amable de decirme como se llama cada uno de los componentes que viene, y su uso? O si alguno de los manuales que tenemos en Dropbox contiene esta info.

Afán emprendedor? Nos sobra jaja, si por nosotros fuese, ya habríamos dominado el mundo.

Pues el display de mi vídeo es muy común, vas a cualquier tienda de electrónica (en Vigo tenemos Electrosón en la calle Venezuela) y pides un display de 7 segmentos, y te lo dan :) Al fin y al cabo son 7 LEDs en una misma "cajita", no tiene mucha ciencia.
También puedes usar una pantalla LCD, como las que traen las calculadoras, y controlarla con el arduino, para eso pides simplemente una pantalla LCD y ya está :)
Te paso la lista de componentes que vienen con el kit que compramos:
http://www.electan.com/kit-basico-sin-a ... -3042.html
Avatar de Usuario
Administrador
Dios
Nov 2010 | 1880 Mens.

Simón Roca @sroca Offline #4
Zarza escribió:
ya lleváis el tema avanzado por lo que veo.


Habla por Jaime, que si no, :mentira: xD
Avatar de Usuario
Veterano
Dios
May 2011 | 1994 Mens.

Rodrigo Zarza @Zarza Offline #5
Sí ya me han hablando de Electrosón, aún que sólo fui una vez a comprar un soldador de estaño, parece que será nuestra segunda casa a partir de ahora.
Gracias por la info, a ver si me paso esta tarde (si alguien más se anima a venir...)

Simón, paciencia jaja, esto es muy entretenido, así que no vamos a tener problema en echarle horas para sacarle partido.

Hay que hacer unas quedadas de vez en cuando para que os podamos copiar inventos ;P
Simracer para: 7thRacing
Linkin' Unit
Avatar de Usuario
Veterano
Arduino
May 2011 | 982 Mens.
Los siguientes usuarios han agradecido a Zarza este post
sroca (24 Feb 2012, 16:19)


Rodrigo Zarza @Zarza Offline #6
Hoy hice el del display. No brilla ni nada!
Mi idea es conseguir algún día usar ese display para mostrar las marchas en el rFactor.

Simracer para: 7thRacing
Linkin' Unit
Avatar de Usuario
Veterano
Arduino
May 2011 | 982 Mens.

Alejandro Alonso Rodriguez @Alex Offline #7
No sé porque salen mis videos en este formato... Grabe en horizontal o en vertical salen así. :yuno:

Solved

"Un discurso político tiene que ser como una buena minifalda. Lo suficientemente corto como para llamar la atención, pero lo suficientemente largo como para tapar lo importante"
Google+ || Twitter
Avatar de Usuario
Administrador
Legendario
Nov 2010 | 2053 Mens.

carlos @charly Offline #8
oyes la conexión del potencio metro al arduino envía una variación de voltaje al pin (A0) de la entrada análoga ,el cual lo conectas al pin de 5vcc del arduino cierto????????????
Avatar de Usuario
Conjunto vacío
Dic 2013 | 1 Mens.

Volver a Arduino

cron