Jump to content

Tineo

Miembros
  • Mensajes

    17338
  • Ingresó

  • Última visita

Todo lo publicado por Tineo

  1. Apareció!! y es la release 1.15 que tengo ahora... Ya tienes para entretenerte. Si le pones entradas, que sean a 5 voltios sino lo crujes. Yo use el esquema que sale en páginas interiores a base de dos resistencias y un diodo; va perfectamente. copiar a un archivo con extensión .INO #include <Adafruit_NeoPixel.h> #define NUMERO_PIXELES 53 #define SEGUNDOS_ESPERA_PUERTA 8 //numero de segundos esperando a atenuar nivel medio en transicion principal (ROJA) #define NO_ESPERA 1 // BRILLOs (1 a 255) – valores altos requieren unos demandas de corriente muy altas (valor tipico BRILLO MAXIMO 160) #define BRILLO_MAXIMO 140 #define BRILLO_MEDIO 32 #define BRILLO_BAJO 9 // MINIMO 8 #define PASOS_FADE_BAJO 700 //numero de pasos para fade a nivel bajo // datos constantes const int buttonPinILUMINACION_AMBIENTE = 1; // iluminacion ambiente en pin 1 const int buttonPinPUERTA_ABIERTA = 2; // puerta abierta en pin2 bool primer_ciclo=1 ; // variables que gestionan las entradas y su estado anterior int buttonStateILUMINACION_AMBIENTE = 0; // estado actual ILUMINACION AMBIENTE int lectura1_ILUMINACION_AMBIENTE; int lectura2_ILUMINACION_AMBIENTE; int lectura3_ILUMINACION_AMBIENTE; int lectura4_ILUMINACION_AMBIENTE; int lastButtonStateILUMINACION_AMBIENTE = 1; // estado anterior ILUMINACION AMBIENTE int buttonStatePUERTA_ABIERTA = 0; // estado actual PUERTA ABIERTA int lastButtonStatePUERTA_ABIERTA = 1; // estado anterior PUERTA ABIERTA // pin de datos de salida a la tira LED WS8212 #define PIN_DE_DATOS 0 // numero de pixeles de la tira LED (se requieren 3 bytes de RAM disponibles por cada led. MULTIPLO DE 5 ) // ancho de la bola de luz (valor tipico 100) #define ANCHO_BOLA 250 // retardo que define la velocidad de avance #define RETARDO_CORTO 25 #define DEBUG 0 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMERO_PIXELES, PIN_DE_DATOS, NEO_GRB + NEO_KHZ800); // cálculo de numero E elevado a x. Esto es una aproximación valida si x<1 float EXP_optimizado(float x) { return (1.0/(1.0-(0.634-1.344*x)*x)); } void un_barrido( int r, int g, int b, int segundos_espera){ int brillo_tras_bola; float posX=0; // PASO1: adecuar el nivel al nuevo color e intensidad bajo for (int i=0; i<NUMERO_PIXELES; i++) { strip.setPixelColor(i, r*((BRILLO_BAJO) )/255, g*((BRILLO_BAJO) )/255, b*((BRILLO_BAJO) )/255 ); } strip.show(); // PASO2: BARRIDO....CON EL NUEVO COLOR int j=2; bool sentido_a_izda=0; int incremento=6; while ( j > 1 ) { if (segundos_espera==SEGUNDOS_ESPERA_PUERTA) { delay(25);} // calcular la velocidad de la bola segun distancia minima a extremos int distancia_minima=j; if ( (NUMERO_PIXELES - j) < j) { distancia_minima=NUMERO_PIXELES-j; } if (( (float)distancia_minima/NUMERO_PIXELES)> 0.00) { incremento=1;} // al 10% supone una velocidad muy lenta if (( (float)distancia_minima/NUMERO_PIXELES)> 0.16) { incremento=2;} if (( (float)distancia_minima/NUMERO_PIXELES)> 0.26) { incremento=3;} if (( (float)distancia_minima/NUMERO_PIXELES)> 0.36) { incremento=5;} // entre el 40% y el 60% supone una velocidad muy elevada x5 if ((j<NUMERO_PIXELES) && (sentido_a_izda==0)) { j=j+incremento; } if (j>=NUMERO_PIXELES) { sentido_a_izda=1; delay(200);} //vuelta hacia atrás if (sentido_a_izda==1) { j=j-incremento; } posX = (float) j / NUMERO_PIXELES; // repetir con cada pixel for (int i=0; i<NUMERO_PIXELES; i++) { // posicion de pixel en la escala 0.0 a 1.0 float ppos = (float)i / NUMERO_PIXELES; // distancia del pixel al centro de la bola float distancia = ppos-posX; // establecer la intensidad de BRILLO_MEDIO a BRILLO_MAXIMO, segun distribucion gausiana if (j<i) {brillo_tras_bola=(sentido_a_izda*BRILLO_MEDIO);} else {brillo_tras_bola=-4;} strip.setPixelColor(i, (constrain( BRILLO_MAXIMO * EXP_optimizado(-ANCHO_BOLA*distancia*distancia),0,BRILLO_MAXIMO)+ brillo_tras_bola + BRILLO_BAJO )*r/255 , (constrain( BRILLO_MAXIMO * EXP_optimizado(-ANCHO_BOLA*distancia*distancia),0,BRILLO_MAXIMO)+ brillo_tras_bola + BRILLO_BAJO)*g/255 , (constrain( BRILLO_MAXIMO * EXP_optimizado(-ANCHO_BOLA*distancia*distancia),0,BRILLO_MAXIMO)+ brillo_tras_bola + BRILLO_BAJO)*b/255 ); } // una vez calculada la tira, enviar datos a la tira led strip.show(); } // PASO3 del barrido, fade a intensidad baja en X pasos) for (int j=PASOS_FADE_BAJO; j>0;j--) { if (j==(PASOS_FADE_BAJO-1)) { delay(segundos_espera*1000); } // espera unos segundos en nivel medio de luz // al abrir la puerta (por ejemplo) for (int i=0; i<NUMERO_PIXELES; i++) { strip.setPixelColor(i, r*((j*( brillo_tras_bola )/PASOS_FADE_BAJO) + BRILLO_BAJO)/255, g*((j*( brillo_tras_bola )/PASOS_FADE_BAJO) + BRILLO_BAJO)/255, b*((j*( brillo_tras_bola )/PASOS_FADE_BAJO) + BRILLO_BAJO)/255 ); } strip.show(); } } void setup() { pinMode(buttonPinPUERTA_ABIERTA, INPUT); pinMode(buttonPinILUMINACION_AMBIENTE, INPUT); // inicializar tira de led strip.begin(); strip.show(); } void loop() { if (primer_ciclo ==1) { // codigo para una primera y unica ejecucion primer_ciclo=0; } // Leer los estados en las entradas de datos buttonStatePUERTA_ABIERTA = digitalRead(buttonPinPUERTA_ABIERTA); // Problemas de estabilidad con la iluminacion ambiente. Leer el dato cuatro veces y usar la funcion OR lectura1_ILUMINACION_AMBIENTE=digitalRead(buttonPinILUMINACION_AMBIENTE); delay(3); lectura2_ILUMINACION_AMBIENTE=digitalRead(buttonPinILUMINACION_AMBIENTE); delay(7); lectura3_ILUMINACION_AMBIENTE=digitalRead(buttonPinILUMINACION_AMBIENTE); delay(11); lectura4_ILUMINACION_AMBIENTE=digitalRead(buttonPinILUMINACION_AMBIENTE); buttonStateILUMINACION_AMBIENTE = (lectura1_ILUMINACION_AMBIENTE |lectura2_ILUMINACION_AMBIENTE |lectura3_ILUMINACION_AMBIENTE |lectura4_ILUMINACION_AMBIENTE ); // comparar los estados por si ha ocurrido un cambio respecto al ciclo anterior if ((buttonStatePUERTA_ABIERTA != lastButtonStatePUERTA_ABIERTA) | (buttonStateILUMINACION_AMBIENTE != lastButtonStateILUMINACION_AMBIENTE) ) { // Si se ha abierto al puerta.... if (buttonStatePUERTA_ABIERTA == HIGH) { // si se ha abierto la puerta... transición a rojo un_barrido(255,0,0,SEGUNDOS_ESPERA_PUERTA); } else if ( buttonStateILUMINACION_AMBIENTE == HIGH) { // si se han encendido luces de posición... transición a blanco un_barrido(255,255,255,NO_ESPERA); } else { // en otro caso, estado nulo.... transicion a otro color un_barrido(0,0,255,NO_ESPERA); } } // le dejamos respirar al bucle delay(RETARDO_CORTO); // guardar los estados para un ciclo posterior lastButtonStatePUERTA_ABIERTA = buttonStatePUERTA_ABIERTA; lastButtonStateILUMINACION_AMBIENTE = buttonStateILUMINACION_AMBIENTE; }
  2. eso puede ser causa de divorcio xpress!! jajaja es increible que pasen estas cosas tras tantos años de bt. Tiene pinta de un fallo de firmware que tendrán que solucionar cuanto antes.
  3. pues va perfectamente! lo tengo en la puerta acompañante y ni un solo problema hasta el momento. Me falta trasladarlo a la puerta conductor, cuando haya tiempo... ponerlo en las traseras es x2, pufff. El sketch actualmente operativo (con dos entradas al sistema y a tres colores) ya os lo pongo por aqui enseguida; esta en el portatil del pueblo, ya lo recupero.
  4. Tineo

    Compra r8

    La verdad es que imponen esas fotos. Los esfuerzos que llevan estos coches al frenas y apoyar fuerte en esas torretas requieren al chasis una gran fortaleza. Es un fallo que fabrica suele resolverlo en pre-producción al castigar el chasis en los coches de prueba. De todas formas hay que verlo por el otro lado, esto tambien puede ser un buen indicador: seguro que este efecto sólo aparece si el coche visita mucho circuitos o ha llevado mucha madera. Si solo se ha usado de paseo posiblemente esté perfecto.
  5. Premio para el caballero! y ahora no lo puedo probar, tengo al a4 en pintura arreglando una aleta, cosas de las nevadas fuertes
  6. Cuanta sonrisa!! de dar mazazos yo tambien puedo dar un master.
  7. Una duda sobre la nueva versión versión HW, sigue la limitación de origen único de audio? Me refiero si se puede escuchar radio oem y mezclar con indicaciones de audio del navegador.
  8. Y no te sirve el pulso del mismo led rojo del cierre centralizado en la puerta conductor, es un pulso 12v y el led lleva una resistencia integrada en su culo. realmentetendrías pulsos repetitivos pero depende del uso que le tengas que dar
  9. Unas fotos del cacharro instalado pls!!!
  10. El silentblock grande del brazo arqueado es hidráulico. Es el único que lleva fluido dentro.
  11. En parado no afecta, obviamente Pero la dinámica del efecto giroscópico si que influye y más que lo que parece
  12. Apenas bajo nada, pero es un buen consumo por esta geografía del norte. Eso sí, con las 19" el consumo sube tres o cuatro décimas. Y eso que no me cortó de dar algunos zapatazos que estropean el consumo.
  13. Tambien puedes tener mal conectado la ficha rectangular que va tras el airbag; la que va a mandos y levas
  14. he googleado un poco y segun parece esa referencia tiene los 12 pines, asi que el anillo es compatible. La codificacion va en la smls independiente, asi que tampoco tendría que ver... a priori, ese anillo sirve. El conector de airbag es independiente al resto de funciones, podria haber algun problema de conexion. ¿funciona el claxon? ¿hay algun error del sensor de giro volante?
  15. Si no hay humo blanco o consumo de combustible alto, lo dejaría estar. a mi me parece algo más relacionado con inyección. Probaria a echarle un aditivo Xenum al diesel a ver cómo evoluciona.,
  16. tambien tengo el parcial 2 en 7.2 60% de tráfico interurbano con neumáticos 245 en las 18" y 255 en las 19"
  17. pues es un asunto interesante y que por lo que veo sin explorar... y eso que es tan fácil como meter la llanta a la báscula del baño El fabricante es muy cuco y se cuida de anunciar su peso, salvo en las marcas TOP que suele ser un argumento de venta. Esta claro que las llantas replica no llevan materiales exóticos (magnesio, etc.) ni técnicas especiales de fabricación (forged), pero las llantas oem tampoco son la crema de españa. Por otro lado una cosa es la ligereza y otra la fortaleza, que suele tener una relación inversa.
  18. eso eso, desenlace??
  19. es sorprendente, por lo visto es que llevan un chip con giroscopio que es el que detecta las aceleraciones de los cambios de dirección
  20. pero giran cuando deben o cuando le sale del pitorro al chino?
  21. lo primero, espero que el golpe no tuviera consecuencias serias para los ocupantes. creo que el problema es que aunque la centralita airbag sea la misma, tiene que casar con los sensores laterales que van en las puertas. http://wiki.ross-tech.com/wiki/index.php/01222 concretamente The Crash Sensors can be checked by using the control module identification and the measuring blocks. Address 15: Airbags Controller: 1T0 909 605 Component: 05 AIRBAG VW62 0506 2112 Coding: 0012341 The 0506 in this example stands for the required Crash Sensor ID, the first 2 digits (05) apply for the front crash sensors, while the second 2 digits (06) apply for the rear crash sensors. The ID of the currently installed Crash Sensors can be determined by checking Measuring Value Block (MVB) 009. quizas lo más simple seria poner los mismos sensores que los del coche donante. Comprueba qué digitos tienen en Measuring Blocks 009; entiendo que tus dígitos deberian ser 00 segun esa centralita instalada.
  22. Y es que....
  23. Pendiente de instalar ya que tengo que dejarlo en chapista a pintar morro y un lateral que tiene algún desperfecto Es la S4 original negra mate con reborde negro brillo y el emblema quatrro de un q5 de los nuevos. Yo creo que puede quedar bien sobre pintura blanca
  24. La madre que lo parió...... Vaya feria! Pues tengo novedades y no son de mecanica! En este finde, presentación en primicia mundial de una parrilla black optic única en el mundo. Por favor, abstenganse fanáticos del cromado. Tengo que meterlo a pintura se morro y un lateral, aprovecho a un cambio de imagen