Saberse las funciones y/o comandos de un lenguaje no es saber programar, es saber utilizar un lenguaje. Es como saberse el diccionario de inglés y no saber decir una frase, nos falta lo más importante, la gramática.
En este post intentaré explicar de forma sencilla como programar (no sólo en Arduino, el método vale para todos los lenguajes... o casi).
Básicamente, la programación consiste en dar una serie de pasos al ordenador para que éste los ejecute, de ahí la frase "El ordenador hace lo que le dices que haga y, en ocasiones, lo que quieres que haga".
¿Como le doy los pasos? Bueno, a los pasos, los informáticos nos gusta llamarlos algoritmos :)
Los algoritmos, funciones, procedimientos... todo esto nos suena a matemáticas, es cierto, la programación tiene un 90% de componente matemática... pero un 10% de componente artístico, que viene a ser el sello personal de cada programador.
Vamos a poner un ejemplo de algoritmo;
No, no se me ha ido la olla, es una receta, sí :) a las recetas, las podemos llamar perfectamente "algoritmos" ya que un algoritmos es, ni más ni menos, una serie de instrucciones.
¿Te parece una comparación estúpida? Vamos a ver…
En programación, se usan variables que tienen un tipo definido, en nuestro caso, las variables son Cebollas, aceite y sal.
¿Qué tipo definido tienen cada una?¿Qué tienen que ver las cebollas con las matemáticas?
Vamos por partes, las variables en programación son ni más ni menos que un lugar en la memoria de un ordenador. Son variables porque en cualquier momento, puedes "variar" su valor, aunque no su tipo (tipo entero, tipo real... ). En nuestro caso, usamos 3 variables que definiríamos así:
Tenemos definidos los componentes que vamos a usar, pero... ¿como los hemos de usar? Aquí entra en juego la recet... eeeh... el algoritmo:
Esto es muy abstracto, hay que definir mejor las cosas, tengamos en cuenta lo dicho de los computadores, yo le voy a decir lo que tiene que hacer, no lo que quiero que haga. Así pues, habrá que aproximar los dos extremos lo más posible.
Concretemos más la receta:
Ahora vamos con un problema de programación y dejamos estar de cocina, que si no, nos entrará hambre :)
Queremos hacer un termómetro que, según la temperatura, varíe el ángulo de un brazo movido por un servo.
Disponemos de:
1 sensor de temperatura LM335
1 servo
1 arduino
Estos elementos, para el programa no son importantes. Bueno, sí pero no, el servo y el sensor hacen su papel en este caso, pero si no metemos un algoritmo que los controle, tenemos trastos caros que no usamos para nada.
Vamos a suponer que está todo cableado y calibrado, y pasamos directamente al programa, este es el montaje del termómetro:

Consejos para programar:
-Empieza poco a poco, no quieras hacer un robot dominador del mundo sin saber utilizar un servo, por ejemplo.
-No uses nombres aleatorios para las variables, si al sensor lo llamas s1 y al servo s2, imagina juntar 6 sensores y 6 servos, un jaleo, mejor usar nombres descriptivos, como no puedes poner nombres separados con espacios, usa mayúsculas en las palabras (miservo, sensorTemperatura).
-No tengas miedo a preguntar en foros, pero no pretendas que e resuelvan todo, la idea es tuya, así que hazla tu.
-Busca ejemplos parecidos y reutiliza código, a veces quieres hacer algo complejo y otros lo han resuelto de forma sencilla.
-Comenta el código como si lo tuviera que leer tu hermanito/hijo de 6 años, dentro de unos meses, al volver a leer el código, lo agradecerás.
En este tutorial no pretendo enseñar a hacer un termómetro, sino a ayudar a pensar en cómo crear el programa que lo controle.
No pretendo ser una ayuda a informáticos y/o electrónicos, esos ya saben programar y, de hecho, me dirán que este tuto es una basura porque me dejo muchas cosas. Considero que para alguien que no tiene conocimientos de programación, como una introducción a ella es más que suficiente.
También te dejo a tí, si estás interesado en ello, que busques información en www.arduino.cc sobre las funciones, comandos y objetos que implementa Arduino.
Este tutorial lleva una dedicatoria especial, a Gloria Martinez Vidal (Glo), profesora de la UJI y una gran amiga, fallecida en 2009. He tomado el ejemplo de pochar cebollas de una de sus clases como introducción.
También he de agradecer a Pablo, chico que conocí en la OSHWCon 2011 que fue el que me preguntó cómo programar (no es electrónico ni informático, o sea, de programar 0) y le estuve explicando con este mismo ejemplo. Gracias a ello, me he decidido a sacar este tutorial.






Comentarios
Un saludo
Gracias Pepe..
Ahora entiendo la esencia de aprender a programar.
Lo que tu dices de los foros es cierto, sin embargo hay personas que no te saben orientar o te dicen las cosas de tal forma que te cortan las alas.
sobre todo cuando somos personas que no tenemos estudios de electrónica ni de programación.
Nuevamente Mil Gracias.
La gente que no tiene conocimientos de programación ve el código como algo misterioso e incomprensible y muchos se desaniman nada más empezar por que creen que no serán capaces de aprender.
Pochar cebollas es fácil, cualquiera puede hacerlo, lo mismo que programar.
Gracias Pepe.
tambien estoy de acuedo con gatoloco 65
supongamos que no tengo conocimiento de c++ y quiero a prender a programar
por donde tengo que empezar y como
para iniciarme
salu2
Yo lo que he intentado explicar es cómo transmitirle al ordenador lo que quieres que haga. Recuerda esto, el ordenador hace lo que tu le dices que haga y, en ocasiones, lo que quieres que haga
El no tener conocimiento de un lenguaje de programación no es impedimento, el no saber programar sí. Esa es la esencia de este artículo, por la cual he explicado una leve introducción a la programación. Si quieres aprender a programar, lo siento, no hay una fórmula mágica, es como escribir un libro, tienes una historia que contar (el programa) para que alguien la reproduzca (el ordenador, o en el caso de un libro, tu imaginación).
Poco a poco iré poniendo pequeños programitas explicados, la intención es continuar con estos tutoriales, te invito a ser mi "alumno", si te sirven de algo, ambos iremos avanzando :)
y acepto la invitacion de ser tu alumno con mucho gusto
a la espera de mas tutoriales
gracias
Suscripción de noticias RSS para comentarios de esta entrada.