Plataforma de electrónica abierta para la creación de prototipos basada en software y hardware flexibles y fáciles de usar.
Rodrigo Zarza @Zarza Offline #1
Estoy empezando a ver la luz para el proyecto que tenía en mente nada más tener el Arduino conmigo. Se trata de usar el display de 7 segmentos como indicador de las marchas en rFactor (simulador del conducción del que medio "vivo").

Pensé que sería más difícil, pero tras leer un poco, tengo los esquemas y código, además del plugin necesario para enviar la información al Arduino.

Voy a ir guardando todo aquí para que no se pierde, y además así os hacéis un poco la boca agua :feellikeasir:
En principio tengo todo lo necesario menos el chip 74hc595, que a ver si lo compro mañana.
A ver qué os parece (el circuito de leds para las rpm, es secundario):

Imagenes:

Imagen

Imagen

Código: Seleccionar todo
  1.  
  2.  
  3. int Gear;
  4. int GearLight = 0;
  5.  
  6. char kind_of_data;
  7.  
  8. int latchpin = 8;
  9. int clockpin = 4;
  10. int datapin = 7;
  11.  
  12.  
  13. void setup (){
  14.  
  15. pinMode (latchpin, OUTPUT );
  16. pinMode (clockpin, OUTPUT );
  17. pinMode (datapin, OUTPUT );
  18.  
  19. Serial . begin (9600);
  20. }
  21.  
  22. void loop (){
  23. //****************************** READ DATA FROM SERIAL ******************************
  24. while ( Serial . available () > 0)
  25. {
  26.  
  27. kind_of_data = Serial . read ();
  28. if (kind_of_data == 'G' ) Read_Gear();
  29.  
  30. digitalWrite (latchpin, LOW );
  31. shiftOut (datapin, clockpin, MSBFIRST , GearLight);
  32. digitalWrite (latchpin, HIGH );
  33. }
  34. }
  35.  
  36.  
  37. //****************************** READ DATA FROM SERIAL END ******************************
  38.  
  39.  
  40. void Read_Gear(){
  41.  
  42. //int Gear = 0;
  43. delay (2);
  44. int Gear100 = Serial . read ();
  45. delay (2);
  46. int Gear10 = Serial . read ();
  47. delay (2);
  48. int Gear1= Serial . read ();
  49.  
  50. Gear100 = ((Gear100)-48)*100;
  51. Gear10 = ((Gear10)-48)*10;
  52. Gear1 = ((Gear1)-48)*1;
  53. if (Gear10 < 0 && Gear1 < 0){Gear100 = Gear100/100;Gear10 = 0;Gear1 = 0;}
  54. if (Gear < 0){Gear100 = Gear100/10;Gear10 = Gear10/10;Gear1 = 0;}
  55.  
  56. Gear = Gear100+Gear10+Gear1;
  57. Serial . println (Gear);
  58.  
  59. if (Gear < 127) {
  60. GearLight = 80;
  61. } //r - little r
  62. if (Gear == 127) {
  63. GearLight = 84;
  64. } //n - little n
  65. if (Gear == 149) {
  66. GearLight = 6;
  67. } //1
  68. if (Gear == 170) {
  69. GearLight = 91;
  70. } //2
  71. if (Gear == 191) {
  72. GearLight = 79;
  73. } //3
  74. if (Gear == 213) {
  75. GearLight = 102;
  76. } // 4
  77. if (Gear == 234) {
  78. GearLight = 109;
  79. } // 5
  80. if (Gear == 255) {
  81. GearLight = 124;
  82. } // 6
  83.  
  84. }
  85. }
  86.  




Plugin: http://www.rfactorcentral.com/detail.cf ... tor2Python
Simracer para: 7thRacing
Linkin' Unit
Avatar de Usuario
Veterano
Arduino
May 2011 | 980 Mens.
Los siguientes usuarios han agradecido a Zarza este post
Gerardo (28 Feb 2012, 00:53), Alex (28 Feb 2012, 23:14)


Rodrigo Zarza @Zarza Offline #2
Tengo todo listo ya, pero me estoy volviendo loco con Python, que es la base del plugin para rFactor.
Todo bien hasta que al iniciar rFactor me dice que me falta la python27.dll
Alguien sabe dónde encontrarla? He encontrado de la 21 a la 26, pero justo la 27 no :(
Simracer para: 7thRacing
Linkin' Unit
Avatar de Usuario
Veterano
Arduino
May 2011 | 980 Mens.

Pepotis @pepotis Offline #3
Yo me quería hacer algo parecido para la moto, pero es que todavía no sé donde carajo meterlo para que no se me moje, así que de momento el proyecto está algo abandonado xD.
Sobre la librería, siento no poder ayudarte, no tengo ni idea
Avatar de Usuario
Veterano
Diferencial
Ene 2011 | 190 Mens.

Volver a Arduino