Diferencia entre revisiones de «Arduino»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
Línea 2: Línea 2:


El maquinari consisteix en dissenys simples de maquinari lliure amb processadors Atmel AVR en una placa amb pins E/S. L'entorn de desenvolupament implementa el llenguatge Processing de Wiring, molt semblant a C++. Arduino es pot utilitzar per desenvolupar objectes interactius autònoms o pot ser connectat a programari de l'ordinador (p. ex. Macromedia Flash, Processing, Max/MSP, Pure Data). Les plaques es poden muntar a mà o adquirir-se i els IDE de font oberta es poden descarregar de franc.
El maquinari consisteix en dissenys simples de maquinari lliure amb processadors Atmel AVR en una placa amb pins E/S. L'entorn de desenvolupament implementa el llenguatge Processing de Wiring, molt semblant a C++. Arduino es pot utilitzar per desenvolupar objectes interactius autònoms o pot ser connectat a programari de l'ordinador (p. ex. Macromedia Flash, Processing, Max/MSP, Pure Data). Les plaques es poden muntar a mà o adquirir-se i els IDE de font oberta es poden descarregar de franc.
== Arquitectura ==
Microcontroladors com els que impulsen els Arduinos estan dissenyats per a aplicacions embegudes. A diferència de les computadores de propòsit general, un processador encastat normalment té una tasca ben definida que ha de realitzar de manera fiable i eficaç (i a un cost mínim). El disseny de microcontroladors tendeix a ser bastant espartà. Es renuncia als luxes d'emmagatzematge en memòria cau de diverses capes i dels sistemes de memòria virtual basats en disc, per exemple.
El model de Harvard resulta ser un bon partit per a aplicacions embegudes i el Atmega 328 empleats en l' Arduino UNO utilitza una arquitectura Harvard relativament pura. Els programes s'emmagatzemen a la memòria Flash i les dades s'emmagatzemen a la memòria SRAM.
A escala completament diferent
La major diferència entre aquests microcontroladors i el seu ordinador de propòsit general és la gran quantitat de memòria disponible . L'Arduino UN té només 32K bytes de memòria Flash i 2K bytes de SRAM . Això és més de 100 mil vegades menys memòria física que un PC de gamma baixa ! I això sense comptar el disc !
El treball en aquest ambient minimalista , ha d'utilitzar els seus recursos de manera intel ligent .


== Projectes ==
== Projectes ==

Revisión del 14:55 14 nov 2013

Arduino és una placa de circuit imprès simple basada en microcontrolador de codi obert provinent de la plataforma de codi obert Wiring amb l'objectiu de fer més simple i accessible el disseny de circuits electrònics amb microcontroladors.

El maquinari consisteix en dissenys simples de maquinari lliure amb processadors Atmel AVR en una placa amb pins E/S. L'entorn de desenvolupament implementa el llenguatge Processing de Wiring, molt semblant a C++. Arduino es pot utilitzar per desenvolupar objectes interactius autònoms o pot ser connectat a programari de l'ordinador (p. ex. Macromedia Flash, Processing, Max/MSP, Pure Data). Les plaques es poden muntar a mà o adquirir-se i els IDE de font oberta es poden descarregar de franc.

Arquitectura

Microcontroladors com els que impulsen els Arduinos estan dissenyats per a aplicacions embegudes. A diferència de les computadores de propòsit general, un processador encastat normalment té una tasca ben definida que ha de realitzar de manera fiable i eficaç (i a un cost mínim). El disseny de microcontroladors tendeix a ser bastant espartà. Es renuncia als luxes d'emmagatzematge en memòria cau de diverses capes i dels sistemes de memòria virtual basats en disc, per exemple.

El model de Harvard resulta ser un bon partit per a aplicacions embegudes i el Atmega 328 empleats en l' Arduino UNO utilitza una arquitectura Harvard relativament pura. Els programes s'emmagatzemen a la memòria Flash i les dades s'emmagatzemen a la memòria SRAM.


A escala completament diferent La major diferència entre aquests microcontroladors i el seu ordinador de propòsit general és la gran quantitat de memòria disponible . L'Arduino UN té només 32K bytes de memòria Flash i 2K bytes de SRAM . Això és més de 100 mil vegades menys memòria física que un PC de gamma baixa ! I això sense comptar el disc !

El treball en aquest ambient minimalista , ha d'utilitzar els seus recursos de manera intel ligent .

Projectes

Comptador

Per a fer aquest comptador utlitzem un Display BCD i un xip cd4511be

Si tenim en compte que el xip decodificador té aquestes entrades:

Cd4511 pin.jpg

i el display aquestes:

Displaybcd.png

Les connexions quedaran:

Arduino cd4511be
2 A
3 B
4 C
5 D
5v Vdd, LT, BL
GND VSS, LE

Les connexions del xip 4511 aniràn a les lletres segons l'esquema.

Contador.png

Primera versió del programa:

void setup()
{
 
  for (int i=2;i<6;i++){ 
  pinMode(i,OUTPUT);
  }
  
}
void loop()
{
  digitalWrite(2,0);
  digitalWrite(3,0);
  digitalWrite(4,0);
  digitalWrite(5,0);
  delay(1000);
  
  digitalWrite(2,1);
  digitalWrite(3,0);
  digitalWrite(4,0);
  digitalWrite(5,0);
  delay(1000);
  
  digitalWrite(2,0);
  digitalWrite(3,1);
  digitalWrite(4,0);
  digitalWrite(5,0);
  delay(1000);
  
  digitalWrite(2,1);
  digitalWrite(3,1);
  digitalWrite(4,0);
  digitalWrite(5,0);
  delay(1000);
  
  digitalWrite(2,0);
  digitalWrite(3,0);
  digitalWrite(4,1);
  digitalWrite(5,0);
  delay(1000);
  
  digitalWrite(2,1);
  digitalWrite(3,0);
  digitalWrite(4,1);
  digitalWrite(5,0);
  delay(1000);
 
  digitalWrite(2,0);
  digitalWrite(3,1);
  digitalWrite(4,1);
  digitalWrite(5,0);
  delay(1000);
  
  digitalWrite(2,1);
  digitalWrite(3,1);
  digitalWrite(4,1);
  digitalWrite(5,0);
  delay(1000);
  
  
  digitalWrite(2,0);
  digitalWrite(3,0);
  digitalWrite(4,0);
  digitalWrite(5,1);
  delay(1000);
  
  
  digitalWrite(2,1);
  digitalWrite(3,0);
  digitalWrite(4,0);
  digitalWrite(5,1);
  delay(1000);
}

Solució amb un for:

int n=0;

byte BCD[16][4]={{0,0,0,0},{1,0,0,0},{0,1,0,0},{1,1,0,0},
{0,0,1,0},{1,0,1,0},{0,1,1,0},{1,1,1,0},{0,0,0,1},{1,0,0,1},
{0,1,0,1},{1,1,0,1},{0,0,1,1},{1,0,1,1},{0,1,1,1},{1,1,1,1}};

void setup()
{
  for (int i=2;i<6;i++){ 
  pinMode(i,OUTPUT); 
  }
}

void loop()
{
  for (int i=0;i<4;i++){
  digitalWrite(i+2,BCD[n][i]);
  }
  delay(100);
 
 if (n!=9) n++; else n=0;
 
}

Fotos: [1] [2] [3]

Enllaços