coleoptero:
Me gusta que en la LeOlympia se hayan mantenido todos los holes para los pines tanto con distancias protoboard como las que mantienen en Leonardo.
Así en un momento dado también se pueden montar shields verticales empleando la distancia protoboard.
Vale, ya me he dado cuenta de mi fallo, estaba haciendo el tonto debido a un error en http://arduino.cc/en/Main/ArduinoBoardLeonardo ...allí dice "External Interrupts: 2 and 3.", por lo que había supuesto que int0 era D2 y int1 era D3 como en todos los arduinos.
La mayoría de vosotros ya lo sabréis, pero eso está mal. La asignación correcta es:
D0 = INT2
D1 = INT3
D2 = INT1
D3 = INT0
Reitero desde mi ignorancia, quiero usar interrupciones, pero segun leo estas estan usadas para el serial 0,1 y para i2c 2,3. ¿Pero que sucede si necesito usar estos 2 puertos mas la interupcion?
Los shield con ethernet ENC28j60 usan un pin interrupcion, aunque es opcional, pero para otro modulo wifi me hace falta.
@maxid - el caso es que todos los microcontroladores tienen pines con funciones diferentes. Por ejemplo, el pin 0 y 1, está mapeado a una de las UARTs, a un módulo de entradas salidas discretas (pines digitales) y además tanto D0 como D1 se pueden usar para interrumpir al micro cuando cambie el estado de uno de esos pines.
El tema es que el que escribe la aplicación, en muchas ocasiones, tiene que seleccionar el tipo de funcionalidad que va a usar. Por ejemplo, si decides montar un dispositivo I2C como un reloj de tiempo real o sensor de temperatura, ya no puedes usar los pines 2 y 3 para otra cosa tipo digital IO.
Otro ejemplo de funciones especiales son las salidas asociadas a un evento de uno de los timers internos que al final se han mapeado por SW a un PWM.
Al final, cuando escribes tu aplicación, tienes que tener en cuenta este tipo de cosas y tomar decisiones de diseño.
Es justo eso lo que me pasa, necesito enviar por puerto serie y tener un reloj y un lcd con i2c, por lo que no puedo dejar de usar uno u otro, y solo han mapeado en arduino esas interrupciones. Pero veo que el atmega32u4 tiene mas interrupciones por hardware.
Están cerrando las charla en las OSHWCon http://oshwcon.org/es y la organización nos pregunta por una charla sobre vinciDuino, algún voluntario?
Yo es que soy muy poco apto para dar charlas ante una sala llena de gente.. sería un desastre, además los fans de Arduino (que supongo que habrá muchos en este evento) pueden acabar linchandome cuando diga lo que pienso x_x
Venga yo si queréis me intento apuntar con una conferencia, para el día 22 sábado. Si no me puedo "llegar" a Madrid necesitaría a alguien que me cubra.
Cubrir????, quién ha dicho cubrir?????, yo como imagináis dejaría muy bajo el listón , di unas charlas en un instituto y todavía están sentados en estado catatónico en sus pupitres, así que es trabajo para un doble 00, con licencia para disertar horas y horas.
Haced fotos, para que se os vea las calvas,jajajajaja
Bueno si al final alguien se anima creo que el plazo para inscribirla (lo ampliaron) no sé si termina este martes o miércoles, según su twitter:
Synusia ?@synusia_es
La publicación de las charlas aceptadas también se retrasará hasta el 15 de agosto #OSHWCon2012
hay que inscribirla aquí: http://oshwcon.org/es/propuesta_charla , http://oshwcon.org/es/call4papers
Yo aún no he cogido la entrada en la página para asistir, supongo que al final lo haré ya que me pilla cerca de casa y aunque estoy un poco cansado de lo que veo sobre estos temas/comunidad/país, supongo que acabré yendo.
Pues nada ya han sacado las actividades de este año: http://oshwcon.org/es/actividades , pintan muy bien.
Yo he decidido no ir (y hay charlas me interesan bastante), no me parece correcto asistir a un evento de este tipo basado en las charlas de los participantes, pudiendo dar una charla que se ha pedido y no dandola, así que me autocastigo y me quedo en casa x_x.
mmmm
Hola a todos, espero que este sea el lugar correcto para publicar esta preguntita...
Me he hecho un vinciduino, y cuando he ido a probarlo, he visto que funciona todo bien excepto las entradas analógicas que en arduino son de la D0 a la D3, ambas inclusives. Las otras entradas analógicas funcionan ok. El problema es que se encuentran SIEMPRE en alto, es decir en este caso a 5v. si las conecto a 3v3, entonces bajan a un ND, aunque no se quedan finos... Lo demás funciona bien.
Cuando las programo como salidas y les doy valor bajo se quedan en alto, que en arduino es el LOW, pero se queda en HIGH.
¿Puede ser que haya quemado algo cuando lo he soldado?
Gracias¡¡¡
JMN:
Pues nada ya han sacado las actividades de este año: http://oshwcon.org/es/actividades , pintan muy bien.
Yo he decidido no ir (y hay charlas me interesan bastante), no me parece correcto asistir a un evento de este tipo basado en las charlas de los participantes, pudiendo dar una charla que se ha pedido y no dandola, así que me autocastigo y me quedo en casa x_x.
Yo me apuntare el medio día que den la charla de PanStamp.
leoleovayavinci:
mmmm
Hola a todos, espero que este sea el lugar correcto para publicar esta preguntita...
Me he hecho un vinciduino, y cuando he ido a probarlo, he visto que funciona todo bien excepto las entradas analógicas que en arduino son de la D0 a la D3, ambas inclusives. Las otras entradas analógicas funcionan ok. El problema es que se encuentran SIEMPRE en alto, es decir en este caso a 5v. si las conecto a 3v3, entonces bajan a un ND, aunque no se quedan finos... Lo demás funciona bien.
Cuando las programo como salidas y les doy valor bajo se quedan en alto, que en arduino es el LOW, pero se queda en HIGH.
¿Puede ser que haya quemado algo cuando lo he soldado?
Gracias¡¡¡
Hola, pues vamos a intentar depurar esa placa.
¿Podrías decirnos cuales son los pines de la placa que no funcionan?
La entradas analógicas de la placa están marcadas como Ax (x=0..5) en la serigrafía.
Las entradas salidas discretas están marcadas como Dx (x=0..13)
Ahora, si intentas hacer una lectura analógica sobre D(0..3) y no tienes nada conectado en A(0..3) vas a tener unas lecturas erráticas porque realmente estás haciendo una lectura sobre A(0..3). Algo similar sucedería si intentas hacer una lectura discreta sobre D(0..3) inicializando A(0..3) como entrada.
Si en tu programa no inicializas el pin correspondiente, por ejemplo D0 o A0 como entradas e intentas hacer una lectura, vas a leer siempre 1 porque en el arranque el micro configura estos puertos como entradas con un pull-up interno.
¿Podrías indicar cómo tienes conectado la vinciduino y sobre qué pines estás haciendo las lecturas?
Ui perdona.......y gracias¡¡¡....cosas de la noche¡¡¡.... me refería a A0-A3, no D0-D3.
Para mas info son los pines PF4, PF5, PF6, PF7, es decir A3, A2, A1, A0 o el D21, D20, D19, y D18 respectivamente.
Da igual si los inicializas o no los inicializas ....siempre están en alto.
Da igual si los tratas como entradas analógicas ,o si los tratas como salidas digitales.....siempre están en alto.
Como entradas analógicas, si no conectas nada, sacando valores por serie dan valores de 1023, sin embargo ante la misma programación el A4, y el A5, (PF1 y PF0) funcionan correctamente. Si les conectas una tensión (a los pines A0-A3), el valor mostrado es 1023 menos el valor de la conversión digital de esa tensión de entrada.
Si los inicializas y los tratas como salidas digitales.....por mucho "LOW" que los pongas en la IDE de arduino siempre están en HIGH.
Esos 4 pines se corresponden con el JTAG, si éste está habilitado esos pines no se pueden usar como entrada salida y además van a estar conectados a una resistencia de pull-up, por lo que como comentas siempre vas a leer un valor alto en ellos. Lo que describes es lo que pasaría si el JTAG está habilitado.
Mete estas líneas en el setup o donde se configure el hardware en el ide de Arduino, a ver si hay suerte:
//Deshabilitar JTAG para usar el puerto F.
MCUCR |= (1<<JTD);
MCUCR |= (1<<JTD);
No están repetidas, hay que meter dos veces la misma.
Otra cosa que puede pasar, es que al soldar los hayas cortocircuitado, con el polímetro mide que no haya continuidad entre ellos y los que estén al lado.
SOLUCIONADO¡¡¡¡
Muchísimas gracias por vuestras respuestas....
Como bien decías, JMN, era el puerto JTAG.
Me he metido con el avrdude y resulta que el hfuse tiene un valor, que significa entre otras cosas que el puerto JTAG está habilitado. Es decir....a cambiar el hfuse. http://www.engbedded.com/fusecalc/
Con la solución que me da JMN, funciona a la perfección, asík lo que no se es si cambiar el hfuse.....
The design is fully open-source and based on the Arduino compatible Vinciduino, as we wanted to give people a device that they could actually use for something useful after the camp has ended, rather than sitting in a drawer.
TiLDA is powered by an ATMega 32U4 and comes equipped with 2.4 ghz wireless communications, infrared communications, two RGB LED’s, and a powerful lithium polymer battery that is rechargeable via microUSB. It also has a button, just in case. There are plenty of free I/O pins for you to augment your TiLDA, and it can be programmed using the standard Arduino software. We can’t wait to see what you do with it at EMF.
La leche! Mira que nos están saliendo variantes! La verdad es que es un placer ver que el trabajo que hemos hecho en este foro se utiliza como una plataforma didáctica!