Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Compiladores
• La directiva # include
• Archivos de encabezado
• Comentarios
• La función main
• La instrucción return
• La función exit
La directiva # include
• encabezado
• Constantes
• Variables
• Instrucciones
• Bloques de instrucciones
• Tipos y nombre de funciones de C
• Argumentos para funciones
• El cuerpo de la función.
• Llamada a funciones
Constantes y variables
if (<condicion>)
{ sentencias cuando SI se cumple;
}
else
{ sentencias cuando NO se cumple;
}
ejemplo
El programa siguiente, lee el valor actual de un botón y si el valor es
alto energiza una lámpara.
int led2=3;
int BOTON=2;
void setup()
{
pinMode(BOTON, INPUT);
pinMode(led2,OUTPUT);
}
void loop()
{
if (digitalRead (BOTON)==HIGH)
{
digitalWrite(led2,HIGH);
}
else
{
digitalWrite (led2, LOW);
}
}
MODIFICACION EJEMPLO 1
void loop()
{
Serial.println(sensor1);
sensor1 = analogRead (LDR);
}
MODIFICACION
• While
• Do while
• for
Ciclo for
• La forma general del ciclo for es:
• for(expresion1, expresion2, expresion3)
• Instrucción;
• Ó bien
• for(expresion1; expresion2, expresion3)
{
Instruccion1;
Instruccion2;
}
• Un ciclo for puede controlar una sola instrucción o
varias dentro de llaves.
• La primera vez que se ejecuta el ciclo, Evalúa la
primera expresión, que por lo general se usa para
inicializar una o mas variables.
• La segunda expresión actúa del mismo modo que la
condicional del while, se evalúa inmediatamente
después de la primera expresión y finalmente ejecuta la
tercera expresión.
• La tercera expresión no se evalúa la primera vez, pero
si después de cada iteración y antes de que la
instrucción verifique de nuevo la expresion2.
ejemplo
Ciclo FOR
• Este tipo de ciclo es muy útil para control de equipos
eléctricos. En este caso la lampara aumenta
paulatinamente su brillo.
int led=3;
int brillo;
int sensor=A0;
int valorsensor=0;
void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop()
{
Serial.println(valorsensor);
valorsensor = analogRead(sensor);
for(brillo=0; brillo<256;brillo++)
{
analogWrite(led, brillo);
delay(10);
}
}
modificación
void loop()
{
Serial.println(sensor1);
sensor1 = analogRead (LDR);
}
FOTOCELDA
• Este código captura valores de luminosidad
provenientes de la ldr. Y los almacena en la
variable sensor1.
int LDR =A1;
int led1 = 2;
int sensor1 = 0;
void setup()
{
Serial.begin(9600);
pinMode(led1, OUTPUT);
}
void loop()
{
Serial.println(sensor1);
sensor1 = analogRead (LDR);
while(sensor1>=500)
{
digitalWrite(led1, HIGH);
}
}
Modificación programa anterior
• Sizeof
• Lógicos
• De manipulación de bits
• Condicional
sizeof
Para reservar memoria se debe saber exactamente el número
de bytes que ocupa cualquier estructura de datos. Tal y como
se ha comentado con anterioridad, una peculiaridad del
lenguaje C es que estos tamaños pueden variar de una
plataforma a otra. ¿Cómo sabemos, entonces, cuántos bytes
reservar para una tabla de, por ejemplo, 10 enteros? El propio
lenguaje ofrece la solución a este problema mediante la
función sizeof().
La función recibe como único parámetro o el nombre de una
variable, o el nombre de un tipo de datos, y devuelve su
tamaño en bytes. De esta forma, sizeof(int) devuelve el
número de bytes que se utilizan para almacenar un entero. La
función se puede utilizar también con tipos de datos
estructurados o uniones tal y como se muestra en el siguiente
programa (que te recomendamos que te descargues, compiles
y ejecutes):
#include <stdio.h>
#define NAME_LENGTH 10
#define TABLE_SIZE 100
#define UNITS_NUMBER 10
struct unit
{ /* Define a struct with an internal union */
int x;
float y;
double z;
short int a;
long b;
union
{ /* Union with no name because it is internal to the
struct */
char name[NAME_LENGTH];
int id;
short int sid;
}
identifier;
};
int main(int argc, char *argv[])
{ int table[TABLE_SIZE];
struct unit data[UNITS_NUMBER];
printf("%d\n", sizeof(struct unit)); /* Print size of
structure */
printf("%d\n", sizeof(table)); /* Print size of table
of ints */
printf("%d\n", sizeof(data)); /* Print size of table
Operadores lógicos
• And
• Or
• Not
sintaxis