Programación y desarrollo de microcontroladores

perez_chuck

#210 Estoy con Arduino Ethernet, y no te creas nada del código ni librerías.

Llevo ya varios bugs detectados/solucionados, el último es para flipar: la función print.
No funciona correctamente... ya no sabía qué hacer, y eliminé un trozo de código y fui añadiendo líneas poco a poco, hasta que cascaba. A veces con un print, otras con varios, así que quité los print y puse un solo println.

También me di cuenta que la función para convertir floats to Strings no funciona correctamente y no podía formatear un String con sprintf... Así que utilicé la librería String y el operador append (+=) para convertirlo a string.

Referente a tu tema, en mi caso utilizo una micro SD para almacenar los datos, y para que todo funcione debo establecer el estado de un pin manualmente, aunque no lo utilice, ya que sino puede haber problemas. Esto viene indicado en la página web de la librería SD. Busca a ver si algún pin te está jodiendo la conexión, aunque tú no lo utilices.

1 respuesta
Nucklear

#211 Eso era lo que había pensado, en primer lugar que las librerías fallen pero si ves la unica así que podria fallar en mi código es ShiftOut y dentro del for la he escrito a mano por lo que debería estar bien. Luego he ido colocando leds por cada pin que reciba datos y validando que se le pasa lo que debe para completar la secuencia y todo hace lo que debe pero no funciona.

1 respuesta
perez_chuck

#212 ya ya, pero puede haber un pin que no uses, y te esté interfiriendo la comunicación.

Napier

#210 No he mirado si llevan el mismo controlador, pero estas con el datasheet del lcd del 5110 y el tuyo es el display del 3310. Entre otras cosas uno esta retroiluminado y el otro no, así que a lo mejor cambia algo más.

Edit: no pierdas tiempo en lo que te he dicho, que acabo de ver que es el mismo controlador.
Si no recuerdo mal a mi una vez me dio muchos problemas el tiempo, pero creo que fue con el msp430, que tenía que poner un bucle for en el que no hacía nada para que funcionara bien, ya que antes a veces iba bien y a veces no. Intenta ver que cumples todas las especificaciones de tiempo del datasheet

1 respuesta
11 días después
Nucklear

#214 Uff se me pasó contestar aqui, estamos en malas fechas jeje.

El datasheet es el mismo para ambos cmo dices. Lo del tiempo es lo que habia pensado, tendré que probarlo cuando pueda. Lo que me sigue mosqueando es que pueda invertir la pantalla y editar el contraste, lo que me da a entender que la pantalla está leyendo los valores que yo le paso excepto los de escritura.

Y otra duda con unos componentes. Estaba mirando este modulo de acelerómetro ADXL335 y viendo por ahí veo que el de Sparkfun cuesta 15$ y por Aliexpress lo tengo desde 1-2$. Supongo que la calidad y resulución no será la misma pero es una diferencia de precio muy grande. ¿Alguna comparativa de ambos o experiencias con uno u otro?

15 días después
Slowbro

Buenas chavales... ¿Alguien puede darme feedback de esta placa? http://www.st.com/web/en/catalog/tools/PF260320?

1 respuesta
Napier

#216 Las núcleo están genial. Hay 5 o 6 modelos y cambian las frecuencias de reloj y alguna tiene un dac mas o algo así, pero en general son todas parecidas. El entorno por defecto es uno online de mbed, que funciona bastante bien, pero también se pueden usar entornos offline. De precio también están genial y salen mas a cuenta que los Arduino, y además tienen los pines con la misma distribución que el uno para poner shields de Arduino.

1
gonya707

muy buenas vibraciones para valer $10. Tengo malas experiencias con placas de ST por lo complicado qie me resultó montar el entorno de desarrollo, pero nunca ha sido con el mbed ede.

por cuanto se puede tenerla en casa? Me tienta por cacharrear un poco

1 respuesta
Slowbro

#218 Soy lo puto peor buscando sitios donde comprar estas cosas a buen precio, pero en mouser está a 9,35€ sin contar gastos de envio ni iva al total (si solo pides eso te clavan 35€ mas o menos).

Probaré alguna tontería y a ver si empiezo ser productivo de una vez xD

2 respuestas
Napier

#219 Mira en farnell.es, que a lo mejor te salen mejor los gastes de envío y además te lo mandan bastante rápido.

gonya707

#219 creo que si lo pedias directamente en la web de ST, hay una de las modalidades en la que el envio es gratis PERO tienes que ir a recogerlo a una oficina de MRW, mira si tienes alguna cerca y pruebas

http://www.st.com/web/en/home.html

24 días después
G

Buenas.

Soy nuevo por aquí y estoy mirando para comprarme la placa EK-TM4C1294XL de Texas Instruments. Leyendo por el foro he visto que varios la adquierieron sin pagar gastos de envío, pero al yo intentar comprarla desde la pagina de TI, me elevan el precio 14 doláres en cuestión de envío. He de suponer que lo de gastos de envío gratuitos era una especie de oferta y ya ha finalizado, o estoy haciendo algo mal.

Muchas gracias por su atención.

Un saludo

1 respuesta
gonya707

#222 pues que yo sepa no, siempre han tenido gastos de envio gratuitos. Voy a hacer una prueba

#222 pues si efectivamente, TI ha empezado a cobrar gastos de envio para todas las placas :c

Clinisvud

Una duda que siempre tuve, ¿cómo de malas son las variables globales? ¿Son el demonio reencarnado o es un mito?

Yo las uso bastante con sensores en Arduino, para leer la calibración en el setup y utilizarla para calcular en el loop.

3 respuestas
bLero

#224 hombre, para programitas pequeños no hay problema, pero como el código crezca un poco estás jodido. Yo siempre procuro evitarlas.

Por cierto, alguien ha trasteado algo con las placas ARM OlinuXino? Voy a pillarme una Nano para fabricar un wearable con bluetooth4 por USB y sensor magnético por UEXT, el problema lo tengo con la batería. No encuentro nada pequeño (me vale alargado) y medianamente potente (al menos 500mA).

1 respuesta
B

#224 Por normal general si necesitas usar variables globales es que el código no está correctamente implementado.

nomechordas

Yo es que soy más de GOTOs

gonya707

#224 a mi me jodieron varias horas de trabajo sin darme cuenta

http://www.mediavida.com/foro/dev/curso-completo-programacion-lenguaje-c-503012/7#205

Clinisvud

Pero por ejemplo en un programa como este:

#include <Wire.h>

#define BMP085_ADDRESS 0x77

//Variables de calibracion
unsigned int AC5;
unsigned int AC6;
unsigned int MD;
unsigned int MC;


void setup() {

  Wire.begin();
  Serial.begin(9600);
  Serial.println(F("Hola"));
  
//Datos de calibración AC5 = ReadInt(0xB2); AC6 = ReadInt(0xB4); MC = ReadInt(0xBC); MD = ReadInt(0xBE);
Serial.print(F("AC5 = ")); Serial.println(AC5); Serial.print(F("AC6 = ")); Serial.println(AC6); Serial.print(F("MC = ")); Serial.println(MC); Serial.print(F("MD = ")); Serial.println(MD);
} void loop() { unsigned int temp_raw; long temp; long x1, x2;
temp_raw = ReadTemp();
//Calibrar la temperatura x1 = (temp_raw - (long) AC6) * (long) AC5 >> 15; x2 = ((long) MC << 11) / (x1 + (long) MD); temp = (x1 + x2 + 8) >> 4; Serial.print(F("Temperatura: ")); Serial.println(temp);
delay(1000); }

Necesito las variables de calibración en el setup y en el loop y con globales es pinta y colorea.

1 respuesta
gonya707

#229 nah eso es un ligero fallo de diseño del lenguaje que usa arduino, la manera habitual de abordar eso en cualquier otro lenguaje es que vaciases todo loop(), pusieses un while(1) al final de setup() y metieses todo lo que estaba en el loop dentro del while. De ese modo puedes crear todo como variables locales de setup

1 1 respuesta
Clinisvud

#230 OK, era más o menos lo que me pensaba. De todos modos, si utilizas las variables constantemente en el bucle, ¿no es un poco indiferente usar globales? El espacio de memoria lo vas a tener siempre ocupado.

1 respuesta
gonya707

#231 pues aunque suene extraño, mi experiencia me dice que cuando las pones globales ocupan mas memoria, mira el link que dejé en #228

1 respuesta
perez_chuck

Si leéis cómo funciona Arduino, esas funciones son simplemente para ayudarte a programar.
Internamente lo mete dentro del main con un bucle infinito. Por lo que estará creando y eliminando las variables constantemente.
A mi entender, variables que vayas a usar en todo el programa deberías ponerlas "globales", y otras auxiliares de manera local.

http://forum.arduino.cc/index.php?topic=54139.0

1 respuesta
perez_chuck

#232 Bien, pero deberías decir, no uséis variables globales con el MSP430 ;)

Clinisvud

#233 Eso es lo que yo hago siempre, pero no sabía si es el método habitual o se considera mala programación.

1 respuesta
perez_chuck

#235 Yo pienso que no. Pero a veces puede que esas variables den resultados raros, tenlo presente si lo que obtienes no es lo esperado.

1 respuesta
Clinisvud

#236 Yo las uso mucho con Arduino e incluso a veces con dsPICs por vagancia y de momento cero problemas. Por eso preguntaba, porque vi a mucha gente criticando las variables globales, pero más en un ámbito informático que en microcontroladores, de ahí que no supiese si se considera "buena praxis".

8 días después
Fyn4r

buenas chavalotes, tengo una asignatura en la que trasteamos con arduino, por comodidad hago las prácticas con los míos, el caso es que tengo todos los trastos necesarios menos 1 chip expansor de E/S I2C (no se como escribirlo la verdad xDDD), uno de estos
http://www.ti.com/lit/ml/scyb031/scyb031.pdf

Pues quería comprarme uno pero no lo encuentro en las tiendas habituales que uso para estas cosas (españolas), como lo necesito para dentro de un par de semanas más o menos no me planteo comprarlo a china claro. Sabeis donde conseguir uno relativamente rápido? si teneis uno os lo compro xD

1 respuesta
ArThoiD

#238 Farnell, Mouser, RS-Electronics, etc.

Hay muchas tiendas similares, incluso si pides muestras de TI diria que llegan bastante rápido.

1 respuesta
Fyn4r

#239 están de camino! muchas gracias meu!

1 1 respuesta

Usuarios habituales

  • raid
  • perez_chuck
  • gonya707
  • nomechordas
  • Napier
  • bornex
  • MTX_Anubis