Solución al ejercicio de la clase anterior

0 views
Skip to first unread message

Syvic

unread,
Aug 16, 2011, 4:12:52 PM8/16/11
to Arduino en Ciball
Buenas,

Durante la clase anterior, como cada uno iba a un nivel diferente, mand�
varias versiones de la pr�ctica en funci�n de lo que fuerais avanzando.
Al m�s avanzado le propuse el siguiente ejercicio:

Con la misma idea del concurso televisivo, ahora a�adimos un display de
7 segmentos y dos botones adicionales.

Esos dos botones los tendr� el �rbitro de la prueba y decidir�, despu�s
de la respuesta de cada concursante, si ha sido correcta o incorrecta.
En caso de ser correcta, se sumar� una unidad a la puntuaci�n de dicho
jugador. Si es incorrecta el marcador quedar� a 0.

Adem�s, durante los 5 segundos posteriores a la decisi�n del �rbitro se
mostrar� en el display 7 segmentos la puntuaci�n actual del jugador que
ha contestado la pregunta.

Como veis, entran varios elementos en juego. Ma�ana explicar� las
soluciones pero si quer�is ir ech�ndole un vistazo al c�digo o a la
implementaci�n en protoboard del circuito aqu� lo ten�is. (no me ha
dejado colgar estos ficheros en la web de fritzing, supongo que tendr�n
alg�n fallo ahora mismo...)

AVISO: El c�digo que mando no est� comprobado, aunque no deber�a fallar...

Nos vemos ma�ana, a las 18h en Ciball.

Un saludo,

Jorge

concurso2.fz
concurso2.pde

victorelec14

unread,
Aug 16, 2011, 4:34:24 PM8/16/11
to arduino...@googlegroups.com
la funcion de numeros yo lo tengo similar pero haciendo un reset (apagando los leds) antes de swich , pero el valor que le pasas por la variable tu le pones byte y yo un int , quedando asi: void numeros(int num){   

hay diferencia en si uso byte o int ?? :S

Gracias


2011/8/16 Syvic <sy...@synusia.es>
Buenas,

Durante la clase anterior, como cada uno iba a un nivel diferente, mandé varias versiones de la práctica en función de lo que fuerais avanzando. Al más avanzado le propuse el siguiente ejercicio:

Con la misma idea del concurso televisivo, ahora añadimos un display de 7 segmentos y dos botones adicionales.

Esos dos botones los tendrá el árbitro de la prueba y decidirá, después de la respuesta de cada concursante, si ha sido correcta o incorrecta. En caso de ser correcta, se sumará una unidad a la puntuación de dicho jugador. Si es incorrecta el marcador quedará a 0.

Además, durante los 5 segundos posteriores a la decisión del árbitro se mostrará en el display 7 segmentos la puntuación actual del jugador que ha contestado la pregunta.

Como veis, entran varios elementos en juego. Mañana explicaré las soluciones pero si queréis ir echándole un vistazo al código o a la implementación en protoboard del circuito aquí lo tenéis. (no me ha dejado colgar estos ficheros en la web de fritzing, supongo que tendrán algún fallo ahora mismo...)

AVISO: El código que mando no está comprobado, aunque no debería fallar...

Nos vemos mañana, a las 18h en Ciball.

Un saludo,

Jorge



--
Victor Moscoso Lembcke

Twitter: @victorelec14


Elias Badenes

unread,
Aug 16, 2011, 4:37:22 PM8/16/11
to arduino...@googlegroups.com

No se de q hablais, pero el byte ocupa menos memoria, igual es por eso :-)

El 16/08/2011 22:34, "victorelec14" <victor...@gmail.com> escribió:
> la funcion de numeros yo lo tengo similar pero haciendo un reset (apagando
> los leds) antes de swich , pero el valor que le pasas por la variable tu le
> pones byte y yo un int , quedando asi: void numeros(*int* num){
> *Victor Moscoso Lembcke*
>
> *Blog:* www.vicolinker.net
> *Twitter:* @victorelec14 <http://twitter.com/victorelec14>

Syvic

unread,
Aug 16, 2011, 4:38:37 PM8/16/11
to arduino...@googlegroups.com
Buenas,


On 16/08/11 22:34, victorelec14 wrote:
la funcion de numeros yo lo tengo similar pero haciendo un reset (apagando los leds) antes de swich ,
Está bien, así te ahorras las líneas de apagar los leds en cada uno de los casos. Bien pensado.


pero el valor que le pasas por la variable tu le pones byte y yo un int , quedando asi: void numeros(int num){   

hay diferencia en si uso byte o int ?? :S
Los dos programas van a funcionar bien. El mío simplemente es un poco más eficiente en el consumo de RAM. Un int ocupa 2 bytes, con lo que puede almacenar del 0 al 65535 o del -32769 al 32767. Con un byte sólo usas un byte (como su nombre indica), pudiendo representar del 0 al 255.

Gracias
Nos vemos mañana!

victorelec14

unread,
Aug 16, 2011, 4:44:14 PM8/16/11
to arduino...@googlegroups.com
int --> 0 al 65535 o  -32769 al 32767
byte -->  0 al 255


creo que tu funcion deberia ser int ?? porque estas pasandole un -1  para apagar todos los leds.

muestraCifra(-1);


2011/8/16 Syvic <sy...@synusia.es>

Syvic

unread,
Aug 16, 2011, 4:46:28 PM8/16/11
to arduino...@googlegroups.com
Uhmmm. Es cierto, es lo que tiene escribir el código rápido y a última hora :)

Bueno, en lugar de cambiar el tipo, cambiaré el valor del switch. Para que se quede todo vacío ahora mandaré un 255 y así me sigue valiendo el byte :)

Bien visto ;)

Elias Badenes

unread,
Aug 16, 2011, 4:46:25 PM8/16/11
to arduino...@googlegroups.com

El byte, tambien puede ser signed (-127..128) no?

El 16/08/2011 22:44, "victorelec14" <victor...@gmail.com> escribió:
> int --> 0 al 65535 o -32769 al 32767
> byte --> 0 al 255
>
>
> creo que tu funcion deberia ser int ?? porque estas pasandole un *-1* para

> apagar todos los leds.
>
> muestraCifra(-1);
>
>
>
> 2011/8/16 Syvic <sy...@synusia.es>
>
>> **

>> Buenas,
>>
>>
>> On 16/08/11 22:34, victorelec14 wrote:
>>
>> la funcion de numeros yo lo tengo similar pero haciendo un reset (apagando
>> los leds) antes de swich ,
>>
>> Está bien, así te ahorras las líneas de apagar los leds en cada uno de los
>> casos. Bien pensado.
>>
>>
>> pero el valor que le pasas por la variable tu le pones byte y yo un int ,
>> quedando asi: void numeros(*int* num){

Elias Badenes

unread,
Aug 16, 2011, 4:47:32 PM8/16/11
to arduino...@googlegroups.com

No se puede usar con signo en arduino?

El 16/08/2011 22:46, "Syvic" <sy...@synusia.es> escribió:
> Uhmmm. Es cierto, es lo que tiene escribir el código rápido y a última
> hora :)
>
> Bueno, en lugar de cambiar el tipo, cambiaré el valor del switch. Para
> que se quede todo vacío ahora mandaré un 255 y así me sigue valiendo el
> byte :)
>
> Bien visto ;)
>
> On 16/08/11 22:44, victorelec14 wrote:
>> int --> 0 al 65535 o -32769 al 32767
>> byte --> 0 al 255
>>
>>
>> creo que tu funcion deberia ser int ?? porque estas pasandole un *-1*
>> para apagar todos los leds.
>>
>> muestraCifra(-1);
>>
>>
>> 2011/8/16 Syvic <sy...@synusia.es <mailto:sy...@synusia.es>>

>>
>> Buenas,
>>
>>
>> On 16/08/11 22:34, victorelec14 wrote:
>>> la funcion de numeros yo lo tengo similar pero haciendo un reset
>>> (apagando los leds) antes de swich ,
>> Está bien, así te ahorras las líneas de apagar los leds en cada
>> uno de los casos. Bien pensado.
>>
>>
>>> pero el valor que le pasas por la variable tu le pones byte y yo
>>> un int , quedando asi: void numeros(*int* num){

>>>
>>> hay diferencia en si uso byte o int ?? :S
>> Los dos programas van a funcionar bien. El mío simplemente es un
>> poco más eficiente en el consumo de RAM. Un int ocupa 2 bytes, con
>> lo que puede almacenar del 0 al 65535 o del -32769 al 32767. Con
>> un byte sólo usas un byte (como su nombre indica), pudiendo
>> representar del 0 al 255.
>>>
>>> Gracias
>> Nos vemos mañana!
>>
>>>
>>>
>>> 2011/8/16 Syvic <sy...@synusia.es <mailto:sy...@synusia.es>>
>>> *Victor Moscoso Lembcke*
>>>
>>> *Blog:* www.vicolinker.net <http://www.vicolinker.net>

>>> *Twitter:* @victorelec14 <http://twitter.com/victorelec14>
>>>
>>>
>>
>>
>>
>> --
>> *Victor Moscoso Lembcke*
>>

Syvic

unread,
Aug 16, 2011, 4:48:13 PM8/16/11
to arduino...@googlegroups.com
Diría que no, es como el char que sólo va del 0 al 255:

http://www.arduino.cc/en/Reference/Byte

Syvic

unread,
Aug 16, 2011, 4:49:04 PM8/16/11
to arduino...@googlegroups.com
Si, pero no para ese tipo de datos

Elias Badenes

unread,
Aug 16, 2011, 4:49:18 PM8/16/11
to arduino...@googlegroups.com

Vaya :-(

El 16/08/2011 22:48, "Syvic" <sy...@synusia.es> escribió:
> Diría que no, es como el char que sólo va del 0 al 255:
>
> http://www.arduino.cc/en/Reference/Byte
>
> On 16/08/11 22:46, Elias Badenes wrote:
>>
>> El byte, tambien puede ser signed (-127..128) no?
>>
>> El 16/08/2011 22:44, "victorelec14" <victor...@gmail.com
>> <mailto:victor...@gmail.com>> escribió:

>> > int --> 0 al 65535 o -32769 al 32767
>> > byte --> 0 al 255
>> >
>> >
>> > creo que tu funcion deberia ser int ?? porque estas pasandole un
>> *-1* para
>> > apagar todos los leds.
>> >
>> > muestraCifra(-1);
>> >
>> >
>> >
>> > 2011/8/16 Syvic <sy...@synusia.es <mailto:sy...@synusia.es>>

>> >
>> >> **
>> >> Buenas,
>> >>
>> >>
>> >> On 16/08/11 22:34, victorelec14 wrote:
>> >>
>> >> la funcion de numeros yo lo tengo similar pero haciendo un reset
>> (apagando
>> >> los leds) antes de swich ,
>> >>
>> >> Está bien, así te ahorras las líneas de apagar los leds en cada uno
>> de los
>> >> casos. Bien pensado.
>> >>
>> >>
>> >> pero el valor que le pasas por la variable tu le pones byte y yo un
>> int ,
>> >> quedando asi: void numeros(*int* num){
>> >>
>> >> hay diferencia en si uso byte o int ?? :S
>> >>
>> >> Los dos programas van a funcionar bien. El mío simplemente es un
>> poco más
>> >> eficiente en el consumo de RAM. Un int ocupa 2 bytes, con lo que puede
>> >> almacenar del 0 al 65535 o del -32769 al 32767. Con un byte sólo
>> usas un
>> >> byte (como su nombre indica), pudiendo representar del 0 al 255.
>> >>
>> >>
>> >> Gracias
>> >>
>> >> Nos vemos mañana!
>> >>
>> >>
>> >>
>> >> 2011/8/16 Syvic <sy...@synusia.es <mailto:sy...@synusia.es>>

>> >> *Twitter:* @victorelec14 <http://twitter.com/victorelec14>
>> >>
>> >>
>> >>
>> >
>> >
>> > --
>> > *Victor Moscoso Lembcke*
>> >

victorelec14

unread,
Aug 16, 2011, 8:20:00 PM8/16/11
to arduino...@googlegroups.com
a alguien mas le pasa que cuando usas los pines 0 (Rx) y 1 (Tx) da error al hacer upload ?? , tengo que desconectar lo que este puesto para poder hacer el upload y luego ya puedo conectarlos y usarlos.

tambien al usar estos pines para el pulsador me dio varios problemas como si estuviera marcando HIGH todo el rato o aveces HIGH y otras LOW , creo que al usarlas piensa q son para enviar y recibir data.

El uso que le eh dado y que no falla es para encender los leds XD


Esos errores son solo a mi o a alguien mas le a pasado ??


Gracias ^^



2011/8/16 Elias Badenes <ebad...@gmail.com>
Reply all
Reply to author
Forward
0 new messages