caramoan tour package

caramoan tour package

Author Topic: arduino programming  (Read 762 times)

Offline veronica

  • CR2032 Battery
  • **
  • Posts: 13
  • Pogi/Ganda Points: 0
arduino programming
« on: February 16, 2011, 05:19:53 PM »
our thesis will use arduino,and it should check the value in the serial port. if the value is "1", it will do a certain task. then there is an override switch which when pressed will reset the process of that task from the start. i have tried to program it but it doesn't do what it suppose to do.

i dont know if the problem is with the program sending the "1" to the serial port or the program reading the serial port which is the arduino..

please help poh..:)

Philippine Electronics Forum

arduino programming
« on: February 16, 2011, 05:19:53 PM »

Offline tiktak

  • Gas Turbine
  • **
  • Posts: 2859
  • Pogi/Ganda Points: 203
  • Gender: Male
    • Tiktakx's Blog
Re: arduino programming
« Reply #1 on: February 16, 2011, 05:21:17 PM »
please post your code so the masters can help you debug your program easily
8051 stuff

Philippine Electronics Forum

Re: arduino programming
« Reply #1 on: February 16, 2011, 05:21:17 PM »

Online glutnix_neo

  • Technical People
  • Nuclear Reactor
  • *****
  • Posts: 4162
  • Pogi/Ganda Points: 166
  • Gender: Female
  • A journey to a thousand lines begins w/ LED Blink
    • Underground Workbench
Re: arduino programming
« Reply #2 on: February 16, 2011, 09:50:25 PM »
my guess is, you're sending an ascii 1 and comparing it with int 1
 :D
If we hear,we forget;if we see, we remember;if we do,we understand.
Let's support the use of free and open source softwares...
http://UndergroundWorkbench.wordpress.com

Philippine Electronics Forum

Re: arduino programming
« Reply #2 on: February 16, 2011, 09:50:25 PM »

Offline maldihtah13

  • Technical People
  • Nuclear Reactor
  • *****
  • Posts: 4670
  • Pogi/Ganda Points: 120
  • Gender: Female
  • Everyday is a learning process so try to learn ;D
    • Blogspot
Re: arduino programming
« Reply #3 on: February 16, 2011, 10:15:50 PM »
Madali lang yan andyan si master glutnix

Philippine Electronics Forum

Re: arduino programming
« Reply #3 on: February 16, 2011, 10:15:50 PM »

Offline veronica

  • CR2032 Battery
  • **
  • Posts: 13
  • Pogi/Ganda Points: 0
Re: arduino programming
« Reply #4 on: February 17, 2011, 11:40:12 PM »
ang gagawin po kc dapat ng design namin. pag my "1" s serial port, iaactivate nia ung dc motor. para po un dpat s pinto pero dahil prototype lang small motor lang or LED lang gmit nmin..pag my "1" s serial port, mag on ung motor for 3 secs ng clockwise then stop for 1 sec and then counterclockwise for another 3 secs. meron pong override switch, na pag pressed, at pasarado na ung pinto (counterclockwise), magrorotate sya ng clockwise kung ilang seconds na ng rotate ung motor ng counterclockwise.

eto po ung code namin s arduino:

const int input = 2;
  const int motor1Pin = 3;    // H-bridge leg 1 (pin 2, 1A)
  const int motor2Pin = 4;    // H-bridge leg 2 (pin 7, 2A)
  const int enablePin = 6;    // H-bridge enable pin
  const int override = 5;
  const int pin1 = 1;
char val;       // variable to store the data from the serial port
int p=0, r=0, q=0, t=0, s=0;
void setup() {
  Serial.begin(9600); // connect to the serial port
 // set the switch as an input:
   pinMode(override, INPUT);
    pinMode(input, INPUT);
    // set all the other pins you're using as outputs:
    pinMode(motor1Pin, OUTPUT);
    pinMode(motor2Pin, OUTPUT);
    pinMode(enablePin, OUTPUT);
    pinMode(pin1, OUTPUT);

    // set enablePin high so that motor can turn on:
    digitalWrite(enablePin, HIGH);

         
}

void loop () {
   
  // activate motor only when you receive data:
   if (Serial.available()) {
        val= Serial.read();
      if (val == '1') {
        if (r==1){
        //if r =1; set motor for forward for q seconds. and also set r back to 0
      digitalWrite(motor1Pin, LOW);   // set leg 1 of the H-bridge low
      digitalWrite(motor2Pin, HIGH);  // set leg 2 of the H-bridge high
      delay(q);
       r=0;
       t=1;
      }   
       
       
       
        if (t==0){
          // this will set the motor to forward (clockwise direction)
      digitalWrite(motor1Pin, LOW);   // set leg 1 of the H-bridge low
      digitalWrite(motor2Pin, HIGH);  // set leg 2 of the H-bridge high
      delay(3000);
        }
        //stop motor for 1 second
      digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
      digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
      delay(1000);
     
      p=1;
      unsigned long REDMillis = millis();//save the current millisecond when motor will be reverse
      digitalWrite(motor1Pin, HIGH);  // set leg 1 of the H-bridge high
      digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
     
     
      if ((digitalRead(override) ==HIGH) && (p=1))
      {
        unsigned long ORMillis = millis();//save current millisecond when override switch was pressed
       
        q=ORMillis-REDMillis; //seconds that the motor operated on reverse
       
        //turn off motor
        digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
        digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
        r=1;
        s=1;
      }
       
     
     
      if(s==0){
      delay(3000);//the motor should be on reverse (counterclockwise) for 3 secs
      //motor stops
      digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
      digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
      }
     
    }
    // if there is no "1" in serial port, motor will turn off
    else {
      digitalWrite(motor1Pin, HIGH);  // set leg 1 of the H-bridge high
      digitalWrite(motor2Pin, HIGH);   // set leg 2 of the H-bridge high
      }
     
}
}

Philippine Electronics Forum

Re: arduino programming
« Reply #4 on: February 17, 2011, 11:40:12 PM »

Online glutnix_neo

  • Technical People
  • Nuclear Reactor
  • *****
  • Posts: 4162
  • Pogi/Ganda Points: 166
  • Gender: Female
  • A journey to a thousand lines begins w/ LED Blink
    • Underground Workbench
Re: arduino programming
« Reply #5 on: February 18, 2011, 08:20:13 AM »
repost ko yung code with proper indentions

Code: [Select]
  const int input = 2;
  const int motor1Pin = 3;    // H-bridge leg 1 (pin 2, 1A)
  const int motor2Pin = 4;    // H-bridge leg 2 (pin 7, 2A)
  const int enablePin = 6;    // H-bridge enable pin
  const int override = 5;
  const int pin1 = 1;
 
  char val;       // variable to store the data from the serial port
  int p=0, r=0, q=0, t=0, s=0;
 
void setup()
{
    Serial.begin(9600); // connect to the serial port
   // set the switch as an input:
   pinMode(override, INPUT);
   pinMode(input, INPUT);
 
   // set all the other pins you're using as outputs:
   pinMode(motor1Pin, OUTPUT);
   pinMode(motor2Pin, OUTPUT);
   pinMode(enablePin, OUTPUT);
   pinMode(pin1, OUTPUT);

   // set enablePin high so that motor can turn on:
   digitalWrite(enablePin, HIGH);
   
}

void loop ()
{
   
  // activate motor only when you receive data:
   if (Serial.available())
   {
      val= Serial.read();
     
      if (val == '1')
      {
        if (r==1)
        {
          //if r =1; set motor for forward for q seconds. and also set r back to 0
          digitalWrite(motor1Pin, LOW);   // set leg 1 of the H-bridge low
          digitalWrite(motor2Pin, HIGH);  // set leg 2 of the H-bridge high
          delay(q);
           r=0;
           t=1;
        }   
       
        if (t==0)
        {
          // this will set the motor to forward (clockwise direction)
          digitalWrite(motor1Pin, LOW);   // set leg 1 of the H-bridge low
          digitalWrite(motor2Pin, HIGH);  // set leg 2 of the H-bridge high
          delay(3000);
        }
     
        //stop motor for 1 second
        digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
        digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
        delay(1000);
     
        p=1;
        unsigned long REDMillis = millis();//save the current millisecond when motor will be reverse
        digitalWrite(motor1Pin, HIGH);  // set leg 1 of the H-bridge high
        digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
     
        if ((digitalRead(override) ==HIGH) && (p=1))
        {
          unsigned long ORMillis = millis();//save current millisecond when override switch was pressed
       
          q=ORMillis-REDMillis; //seconds that the motor operated on reverse
       
          //turn off motor
          digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
          digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
          r=1;
          s=1;
        }

        if(s==0)
        {
          delay(3000);//the motor should be on reverse (counterclockwise) for 3 secs
          //motor stops
          digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
          digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
        }
       
      }
      // if there is no "1" in serial port, motor will turn off
      else
      {
        digitalWrite(motor1Pin, HIGH);  // set leg 1 of the H-bridge high
        digitalWrite(motor2Pin, HIGH);   // set leg 2 of the H-bridge high
      }
     
    }
}

isang napuna ko eh

eto

Code: [Select]
      // if there is no "1" in serial port, motor will turn off
      else
      {
        digitalWrite(motor1Pin, HIGH);  // set leg 1 of the H-bridge high
        digitalWrite(motor2Pin, HIGH);   // set leg 2 of the H-bridge high
      }

ay nasa loob ng "if (val == '1') " condition ito ba ang intent nyo? or gusto nyo gawing else sya nung if na yun?
If we hear,we forget;if we see, we remember;if we do,we understand.
Let's support the use of free and open source softwares...
http://UndergroundWorkbench.wordpress.com

Online glutnix_neo

  • Technical People
  • Nuclear Reactor
  • *****
  • Posts: 4162
  • Pogi/Ganda Points: 166
  • Gender: Female
  • A journey to a thousand lines begins w/ LED Blink
    • Underground Workbench
Re: arduino programming
« Reply #6 on: February 18, 2011, 08:26:04 AM »
isa pang maisasuggest ko eh ihiwalay nyo ng function yung pagrotate ng clockwise or counterclockwise ng motor para di kayo nahihirapan.

may ilang parts na hindi malinaw sa code like ano yung mga variables na int p=0, r=0, q=0, t=0, s=0;.

Ang suggestion ko eh name your variables with names na idinedescribe kung ano sya, e.g. ctrclkwise_delay, clkwise_delay, mot1_position, etc.

This way madali maiintindihan ng ibang babasa ang code nyo and kayo rin eh madali nyo maaalala kung para saan ang variable na yun.

huling request ko eh block diagram ng system nyo, kasi napuna ko sa code may dalawang motor kayo,
If we hear,we forget;if we see, we remember;if we do,we understand.
Let's support the use of free and open source softwares...
http://UndergroundWorkbench.wordpress.com

Online glutnix_neo

  • Technical People
  • Nuclear Reactor
  • *****
  • Posts: 4162
  • Pogi/Ganda Points: 166
  • Gender: Female
  • A journey to a thousand lines begins w/ LED Blink
    • Underground Workbench
Re: arduino programming
« Reply #7 on: February 18, 2011, 08:59:55 AM »
you can start from this, gawan nyo na lang ng code yung door reset function....

Code: [Select]
const int input = 2;
const int motor1Pin = 3;    // H-bridge leg 1 (pin 2, 1A)
const int motor2Pin = 4;    // H-bridge leg 2 (pin 7, 2A)
const int enablePin = 6;    // H-bridge enable pin
const int override = 5;
const int pin1 = 1;

boolean bl_CommandRecieved = FALSE;  
unsigned long DoorOpenTimer;
unsigned long ElapsedDoorOpen;
  
/*** rename nyo na lang into something more understandable ****/
char val;       // variable to store the data from the serial port
int p=0, r=0, q=0, t=0, s=0;
/**************************************************************/

void setup()
{
    Serial.begin(9600);                 // connect to the serial port
  
   // set the switch as an input:
   pinMode(override, INPUT);
   pinMode(input, INPUT);
  
   // set all the other pins you're using as outputs:
   pinMode(motor1Pin, OUTPUT);
   pinMode(motor2Pin, OUTPUT);
   pinMode(enablePin, OUTPUT);
   pinMode(pin1, OUTPUT);

   // set enablePin high so that motor can turn on:
   digitalWrite(enablePin, HIGH);  
}

void loop()
{
   // activate motor only when you receive data:
   if (Serial.available())
   {  
      val= Serial.read();
      
      // run the motors
      if (val == '1')
      {
        bl_CommandRecieved = true;
        DoorOpenTimer = millis(); //mark start of timer
      }
      // turn off the motors
      else
      {
        bl_CommandRecieved = false;
      }  
   }
  
   if(bl_CommandRecieved && !digitalRead(override))
   {
     ElapsedDoorOpen = (millis() - DoorOpenTimer);
    
     //reset everything back to initial position
     if(digitalRead(override))
     {
       doorReset();
     }
     else
     {
       doorOpen();
     }
   }
   else
   {
    
   }
  
}

void doorReset()
{
  
}
void doorOpen()
{
  // Clockwise for 3Sec
  if(ElapsedDoorOpen < 3)          // continue clockwise until 3sec has lapsed
  {
    motorsForward();
  }
  // Stop for 1Sec
  else if(ElapsedDoorOpen < 4 )   // pause for 1sec, 3sec opening + 1sec pause
  {
    motorsStopped();
  }
  // Counter Clockwise for 3Sec
  else if(ElapsedDoorOpen) < 7 )   // counter clockwise
  {
    motorsReversed();
  }
  // clear command afte 7 seconds
  else
  {
    bl_CommandRecieved = false;
  }
  
}


//*** Low Level Motor Controls *************************************
//void motorsClockwise()
void motorsForward()
{
  digitalWrite(motor1Pin, LOW);   // set leg 1 of the H-bridge low
  digitalWrite(motor2Pin, HIGH);  // set leg 2 of the H-bridge high  
}

//void motorsCntrClockwise()
void motorsReversed()
{
  digitalWrite(motor1Pin, HIGH);  // set leg 1 of the H-bridge high
  digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low  
}

void motorsStopped()
{
  digitalWrite(motor1Pin, LOW);   // set leg 1 of the H-bridge low
  digitalWrite(motor2Pin, HIGH);  // set leg 2 of the H-bridge high  
}
If we hear,we forget;if we see, we remember;if we do,we understand.
Let's support the use of free and open source softwares...
http://UndergroundWorkbench.wordpress.com

Offline rdpzycho

  • Technical People
  • Solar Power Satellite
  • *****
  • Posts: 10729
  • Pogi/Ganda Points: 632
  • Gender: Male
  • Respect Begets Respect
    • rdpzycho
Re: arduino programming
« Reply #8 on: February 18, 2011, 09:29:22 AM »
agree sa mga suggestions ni sis glutnix. isa pa, kapag bago sa inyo 'yung function, i-test niyo muna kung paano gumagana using outputs na alam niyo kung paano paganahin like LED. tapos saka na lang pagsamahin sa buong code.

mas madali kasing makabuo ng program by sectional testing kaysa buoin muna 'yung program bago i-test kung tama nga.
‎"Divide each difficulty into as many parts as is feasible and necessary to resolve it."
- Rene Descartes

"For every difficult problem there is always a simple answer and most of them are wrong."
- Clayton Paul

Offline Macgyver

  • Diesel Generator
  • *
  • Posts: 1440
  • Pogi/Ganda Points: 70
    • MakerDude
Re: arduino programming
« Reply #9 on: February 18, 2011, 10:57:03 AM »
^ganyan din ako mag approach.  by section.  kung baga, divide and conquer.  then saka i combine after.
Become a Virtual Worker |  MakerDude.com Electronics Shop is now OPEN!

Offline rdpzycho

  • Technical People
  • Solar Power Satellite
  • *****
  • Posts: 10729
  • Pogi/Ganda Points: 632
  • Gender: Male
  • Respect Begets Respect
    • rdpzycho
Re: arduino programming
« Reply #10 on: February 18, 2011, 11:05:26 AM »
^ magulo talaga kasi kapag buo na 'yung code bago ite-test. :D mahirap nang alamin kung ano 'yung working at non-working part. ;D
‎"Divide each difficulty into as many parts as is feasible and necessary to resolve it."
- Rene Descartes

"For every difficult problem there is always a simple answer and most of them are wrong."
- Clayton Paul

Online glutnix_neo

  • Technical People
  • Nuclear Reactor
  • *****
  • Posts: 4162
  • Pogi/Ganda Points: 166
  • Gender: Female
  • A journey to a thousand lines begins w/ LED Blink
    • Underground Workbench
Re: arduino programming
« Reply #11 on: February 18, 2011, 11:11:23 AM »
may mali pala dito
if(bl_CommandRecieved && !digitalRead(override))

dapat
if(bl_CommandRecieved)
If we hear,we forget;if we see, we remember;if we do,we understand.
Let's support the use of free and open source softwares...
http://UndergroundWorkbench.wordpress.com

Offline veronica

  • CR2032 Battery
  • **
  • Posts: 13
  • Pogi/Ganda Points: 0
Re: arduino programming
« Reply #12 on: February 19, 2011, 08:59:38 AM »
thanks po s mga reply. im editing the code you post. thanks.:)

ung process flow po nung design eto:

>>>computer sends "1" or "0" to serial port
>>> arduino reads serial port
>>>if there is "1", motor will rotate CW for 3 secs to open the door.
      if there is no "1", motor is inactive
>>>(a)motor will pause for 1 sec
>>>after 4 secs, motor will rotate CCW to close the door
>>>motor will begin rotating CCW .while door is closing, override
      switch can be pressed to stop the door from closing completely.
>>>if override is not pressed, motor stops rotating CCW after 3
     secs. if override is pressed, motor will rotate CW depending on
     how long it had rotated CCW.(the door should return to its
     original open position)
>>>after it had rotated CCW(this is when override was pressed), it
      will go back to (a)
>>>for the process where override was not pressed, the motor will
      be inactive and will wait for another signal to activate it.

Offline veronica

  • CR2032 Battery
  • **
  • Posts: 13
  • Pogi/Ganda Points: 0
Re: arduino programming
« Reply #13 on: February 20, 2011, 08:39:24 AM »
binago ko muna ung mga variables at mga indention nung dating program. eto na sya:

pero inuulit nia lang ung dapat gawin pag SerialValue == '1', hindi sya tumitigil..continuous lang ung loop nia. Dapat pag '0' na ung value stop n sya pero umuulit lang sya.

Code: [Select]
  const int motor1Pin = 3;    // H-bridge leg 1 (pin 2, 1A)
  const int motor2Pin = 4;    // H-bridge leg 2 (pin 7, 2A)
  const int enablePin = 6;    // H-bridge enable pin
  const int override = 5;
  int SerialValue;       // variable to store the data from the serial port
  int DoorClosing=0, ElapsedClosing=0, NoPrevOR=0, ORset=0;
  long threesec = 3000;
  long previousMillis=0;
  long onesec=1000;
  unsigned long ClosingMillis = 0;
  unsigned long ORMillis = 0;
  unsigned long currentMillis = 0;
 
void setup()
{
  Serial.begin(9600); // connect to the serial port
 // set the switch as an input:
   pinMode(override, INPUT);
  // set all the other pins you're using as outputs:
  pinMode(motor1Pin, OUTPUT);
  pinMode(motor2Pin, OUTPUT);
  pinMode(enablePin, OUTPUT);

  // set enablePin high so that motor can turn on:
  digitalWrite(enablePin, HIGH);
}

void loop ()
{
  // send data only when you receive data:
  if (Serial.available())
  {
   SerialValue= Serial.read();
   if (SerialValue == '1')
   {
     currentMillis = millis();
     if (ORset==1)//if r =1; set motor for forward for ElapsedClosing seconds. and also set r back to 0
     {
        while(currentMillis - previousMillis <= ElapsedClosing)
        {
        digitalWrite(motor1Pin, LOW);   // set leg 1 of the H-bridge low
        digitalWrite(motor2Pin, HIGH);  // set leg 2 of the H-bridge high
        currentMillis = millis();
        }
        if(currentMillis - previousMillis > ElapsedClosing)
        {
        previousMillis = millis();// save the last time you blinked the LED
   
        digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
        digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
        }
      ORset=0;
      NoPrevOR=1;
     }   
     previousMillis = millis();
     if (NoPrevOR==0)
     {
        while(currentMillis - previousMillis <= threesec)
        { // this will set the motor to forward (clockwise direction)
        digitalWrite(motor1Pin, LOW);   // set leg 1 of the H-bridge low
        digitalWrite(motor2Pin, HIGH);  // set leg 2 of the H-bridge high 
        currentMillis = millis();
        }
     
       if(currentMillis - previousMillis > threesec)
       {
        previousMillis = millis();// save the last time you blinked the LED
        currentMillis = millis();
          while(currentMillis - previousMillis <= onesec)
          {
          digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
          digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
          currentMillis = millis();
          }
       }
     }
     
     currentMillis = millis(); 
       //stop motor for 1 second
    if(currentMillis - previousMillis > onesec)
    {
     previousMillis = millis();// save the last time you blinked the LED
     currentMillis = millis();
     DoorClosing=1;
      while(currentMillis - previousMillis <= threesec)
      {
      ClosingMillis = millis();//save the current millisecond when motor will be reverse
      digitalWrite(motor1Pin, HIGH);  // set leg 1 of the H-bridge high
      digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
      currentMillis = millis();
      } 
    }   
    if ((digitalRead(override) ==HIGH) && (DoorClosing=1))
    {
     ORMillis = millis();//save current millisecond when override switch was pressed
     ElapsedClosing=ORMillis-ClosingMillis; //seconds motor operated on reverse
        /*save number of seconds red operated=q.
        get system time when red on. then get system time when override on. subtract them to get q;
        convert hour minute second and milliseconds to milliseconds ==REDmillis
        same s ORmillis.
        //then turn off red.
        */
        //turn off motor
      digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
      digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
      ORset=1;
     }
       
        /*ga2win ng override mgggreen
        patay c red; mggreen qng ilang seconds ng red knina bgo mg override
        save number of seconds in variable q..and set variable r to 1.
        p=0;*/
     
     if(ORset==0)
     {
        currentMillis = millis();
        if(currentMillis - previousMillis > threesec)
        {
          previousMillis = millis();// save the last time you blinked the LED
          //the motor should be on reverse (counterclockwise) for 3 secs
          //motor stops
          digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
          digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
        }
      }
    }
    // if there is no "1" in serial port, motor inactive
    else
    {
      digitalWrite(motor1Pin, LOW);  // set leg 1 of the H-bridge low
      digitalWrite(motor2Pin, LOW);   // set leg 2 of the H-bridge low
    } 
  }
}

Offline veronica

  • CR2032 Battery
  • **
  • Posts: 13
  • Pogi/Ganda Points: 0
Re: arduino programming
« Reply #14 on: February 21, 2011, 01:03:20 AM »
thanks for the code glutnix_neo..it helped me.:)

Online glutnix_neo

  • Technical People
  • Nuclear Reactor
  • *****
  • Posts: 4162
  • Pogi/Ganda Points: 166
  • Gender: Female
  • A journey to a thousand lines begins w/ LED Blink
    • Underground Workbench
Re: arduino programming
« Reply #15 on: February 21, 2011, 09:26:59 AM »
gumana na?
If we hear,we forget;if we see, we remember;if we do,we understand.
Let's support the use of free and open source softwares...
http://UndergroundWorkbench.wordpress.com

Philippine Electronics Forum

Re: arduino programming
« Reply #15 on: February 21, 2011, 09:26:59 AM »

 

Privacy Policy

Contact Us: elabph@yahoo.com