Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - @synthesize

#1611
http://foro.elhacker.net/electronica/arduino_encender_y_apagar_led-t295171.0.html

Como contiene código en C, posteo el enlace... ^^ A ver que opinan.
#1612
Electrónica / Arduino: Encender y apagar Led
31 Mayo 2010, 03:51 AM
He creado un pequeño proyecto para encender y apagar un led conectado a Arduino, a través de un ejecutable escrito en C bajo GNU/Linux.

Códigos;

Archivo para GNU/Linux;

#include <stdio.h>
#include <string.h>

char ruta[13];

FILE *fp;

int pedirNum();
void abrir();

int main(void)
{
int op, var;
strncpy(ruta, "/dev/ttyUSB0", 13);

if ((fp=fopen(ruta, "a"))==NULL)
{
fprintf(stdout, "No se puede abrir el archivo\n");
return 0;
}

fcloseall();

do
{
fprintf(stdout, "Introduce valor (0 para salir)\n");
var =pedirNum();
if (var==0)
{
abrir(); putc(0, fp); fclose(fp);
break;
}

else
{
switch(var)
{
case 1: abrir(); putc(1, fp); fclose(fp); break;
case 2: abrir(); putc(2, fp); fclose(fp); break;
case 3: abrir(); putc(3, fp); fclose(fp); break;
}
}
} while (1);

return 0;
}

int pedirNum()
{
int valor;
do
{
scanf("%d", &valor);
} while (valor<0 || valor>3);
return valor;
}

void abrir()
{
if ((fp=fopen(ruta, "w"))==NULL)
{
fprintf(stdout, "Imposible abrir el archivo\n");
}
}


Archivo para Arduino;

int var;
int ledPin =13;

void setup()
{
 Serial.begin(9600);
 pinMode (ledPin, OUTPUT);
 var =0;
}

void loop()
{
 if (Serial.available() >0)
 {
   var =Serial.read();
   
   outtext(var);
   
   if (var==0)
   {
     Serial.print("End.\n");
     offLeds();
   }
   
   if (var==1)
   {
     digitalWrite(ledPin, HIGH);
   }
   
   if (var==2)
   {
     digitalWrite(ledPin, LOW);
   }
   
   if (var==3)
   {
     parpadea();
   }
 }
}

void outtext (int valor)
{
 if (valor==1)
   Serial.println("State 1 - ON");
 if (valor==2)
   Serial.println("State 2 - OFF");
 if (valor==3)
   Serial.println("State 3 - BLINK");
}

void parpadea()
{
 int cont;
 for (cont=0;cont<10;cont++)
 {
   digitalWrite(ledPin, HIGH);
   delay(250);
   digitalWrite(ledPin, LOW);
   delay(250);
 }
}

void offLeds()
{
 digitalWrite(ledPin, LOW);
}





Versión actual: 0.2
* Añadida función Blink
* Añadido State 0; END.

Out Serial;

CitarState 1 - ON

State 2 - OFF

State 3 - BLINK

End.





Como podéis ver, el Led está conectado a la salida digital 13, la cual incluye resistencia propia.

Vídeo de funcionamiento; (v. 0.1)
[youtube=425,350]
http://www.youtube.com/watch?v=AqlVs2kUcyg[/youtube]




Quién quiera usar el código en otros sistemas operativos, solo tiene que cambiar la ruta del archivo de Arduino. Creo que no habría que cambiar mas, pues he usado funciones estándar ^^.

Si alguien quiere mejorar el code, o solamente opinar, ya sabéis, para eso estamos ^^.
#1613
Electrónica / Arduino: Cronómetro
31 Mayo 2010, 02:34 AM

int seg =0;
int mix =0;
int hor =0;
int b;

void setup()
{
  Serial.begin(115200);
 
  hor =17;  // Actual
  mix =58;
  seg =45;
  b=1000;
}

void loop()
{

  int a =millis();
 
  if (a==b)
  {
    b+=1000;
    seg++;
   
 
    if (seg==60)
    {
      seg =0;
      mix++;
    }
 
    if (mix==60)
    {
      mix =0;
      hor++;
    }
 
    if (hor==23)
    {
      hor =0;
      mix =0;
      seg =0;
    }
    Serial.flush();
    mostrar(hor, mix, seg);
  }
}

void mostrar (int hox, int mixx, int sex)
{
  Serial.print(hox);
  Serial.print(";");
  Serial.print(mixx);
  Serial.print(";");
  Serial.print(sex);
  Serial.print("\n");
}


¿Alguien me ayuda a mejorarlo? XD
#1614
Electrónica / Re: Arduino y sensor
30 Mayo 2010, 18:28 PM
Cita de: SOMBRIO en 30 Mayo 2010, 06:28 AM
Suerte con tu proyecto amigo cada mejora lo va a hacer mas llamativo

Se me ocurre que en vez de el led encienda y apague por ligeros movimientos y el beep cuando pasa alguien.. por que no mejor pones diferentes melodias estaba trabajando en un codigo para pasar cualquier melodia rttl a lenguaje arduino por sus coincidencias do -re -mi -fa -sol pero tiene fallos .......


tipo melodia rttl
Halloween:d=4,o=5,b=180:8d6,8g,8g,8d6,8g,8g,8d6,8g,8d#6,8g,8d6,8g,8g,8d6,8g,8g,8d6,8g,8d#6,8g,8c#6,8f#,8f#,8c#6,8f#,8f#,8c#6,8f#,8d6,8f#,8c#6,8f#,8f#,8c#6,8f#,8f#,8c#6,8f#,8d6,8f#


en melodias con tonos bajos y altos se vuelve un codigo grandisimo y no se por que la melodia no sale tan bien que digamos

Despues pongo el codigo a la mejor tu que programas mas a menudo encuentres la falla que en su tiempo yo no pude

Saludos


Para escribir canciones simples yo uso procedimientos...

por ejemplo

void do (int duracion, int silencio)
{
    tone (pin, frecuencia, duracion);
    delay(silencio);
}


No lo hago exactamente así, pero es un buen ejemplo XD
#1615
Electrónica / Re: Arduino y sensor
30 Mayo 2010, 18:24 PM
Cita de: SOMBRIO en 30 Mayo 2010, 17:30 PM
Cita de: ..::| D3Bć1 |::. en 30 Mayo 2010, 16:48 PM
Y que valores devuelve la lectura analogica? porque 400? no era 255?
Lo digo por esto:
Código (cpp) [Seleccionar]
int movimiento = analogRead(pinentrada); 

  if (movimiento>400)


Saludos



arduino lee valores de 0 a 1024      --------0 a 5v

y escribe valores o a 255  -----------0 a 5v

Y a mi el sensor me devuelve, si detecta algo, varios pulsos de mas de 400... Por eso lo puse XD
#1616
Tengo que revisar mas ese code, de todas formas, he visto esto:

  Serial.print(value);

En vez de usar Serial.print, es mejor que uses Serial.println.

println()

Prints data to the serial port as human-readable ASCII text followed by a carriage return character (ASCII 13, or '\r') and a newline character (ASCII 10, or '\n'). This command takes the same forms as Serial.print().

print()

Prints data to the serial port as human-readable ASCII text. This command can take many forms. Numbers are printed using an ASCII character for each digit. Floats are similarly printed as ASCII digits, defaulting to two decimal places. Bytes are sent as a single character. Characters and strings are sent as is.



#1617
Cita de: Leo Gutiérrez. en 30 Mayo 2010, 17:34 PM
Cita de: GNU López en 30 Mayo 2010, 17:29 PM
Cita de: Bru2712 en 30 Mayo 2010, 17:28 PM
Cita de: GNU López en 30 Mayo 2010, 17:25 PM
Batch y HTML no son lenguajes de programación... XD

Que raro, no es un programa de programación, pero te sirve para programar y automatizar  :silbar:

Uno es un intérprete de comandos y el otro es por etiquetas, las cuales son interpretadas con un explorador... No es programación. XD

Mal, batch no es un interprete.

"Un fichero batch es un archivo de texto que contiene comandos  a ejecutar en un intérprete de comandos propio de DOS o OS/2. Cuando es iniciado, un programa shell (típicamente command.com  o cmd.exe) lo lee y ejecuta, generalmente línea a línea. De este modo, se emplea para ejecutar series de comandos automáticamente. El hecho de que funcione solo para MS-DOS lo hace muy limitado. Su extensión es .bat o .cmd."

Vale, me equivoqué, pero sigue sin ser un lenguaje de programación, por lo menos, bajo mi punto de vista.
#1618
Cita de: Bru2712 en 30 Mayo 2010, 17:28 PM
Cita de: GNU López en 30 Mayo 2010, 17:25 PM
Batch y HTML no son lenguajes de programación... XD

Que raro, no es un programa de programación, pero te sirve para programar y automatizar  :silbar:

Uno es un intérprete de comandos y el otro es por etiquetas, las cuales son interpretadas con un explorador... No es programación. XD
#1619
Batch y HTML no son lenguajes de programación... XD
#1620
Foro Libre / Re: CF de Win Vista
30 Mayo 2010, 06:43 AM
Cita de: Amerikano|Cls en 30 Mayo 2010, 06:24 AM
Pucha!!!!!!



Ves, este tipo de BSOD es mas agradable a la vista.