Visual Basic en Arduino

Status
Niet open voor verdere reacties.

Deadloser541

Nieuwe gebruiker
Lid geworden
16 mrt 2013
Berichten
4
Beste,

Ik heb een DCF77 ontvanger en leest deze in op Arduino.
Maar nu moet ik de gegevens doorsturen van Arduino naar VB alle instellingen zijn al goed
in VB en Arduino enkel hoe moet ik dit doorsturen zodat er een nieuwe gegevens binnen komen dat deze ook
automatisch naar VB gaan met geen timer!

Code:
int INGANG = 2;
int teller = 0;
int DCF[59];
int eenhedenUren = 0;
int eenhedenMinuten = 0;
int tientallenUren = 0;
int tientallenMinuten = 0;
int eenhedenDag = 0;
int tientallenDag = 0;
int eenhedenMaand = 0;
int tientallenMaand = 0;
int eenhedenJaar = 0;
int tientallenJaar = 0;
int dagVanDeWeek = 0;

void setup() 
{
Serial.begin(9600);
pinMode(INGANG, INPUT);
EICRA &= ~ (0 << ISC01);
EICRA |=  (1 << ISC00);
EIMSK |=  (1 << INT0);

TCCR1A = 0;
TCCR1B = 0;
TCCR1B |= (1 << CS10);
TCCR1B &= ~(1 << CS11);
TCCR1B |= (1 << CS12);
TCNT1 = 0;

sei();
}
void loop()
{

}

ISR (INT0_vect)
{
if (digitalRead(INGANG) == HIGH)
  {
    // voorflank
        if( TCNT1 > 23400)
       {
        if (teller == 58 )
         {
          // tijd berekenen
          tientallenUren = ( DCF[33] * 1 + DCF[34] * 2 );
          eenhedenUren = ( DCF[29] * 1 + DCF[30] * 2 + DCF[31] * 4 + DCF[32] * 8 );
          tientallenMinuten = ( DCF[25] * 1 + DCF[26] * 2 + DCF[27] * 4 );
          eenhedenMinuten = ( DCF[21] * 1 + DCF[22] * 2 + DCF[23] * 4 + DCF[24] * 8 );

          // tijd laten zien
          Serial.print(tientallenUren);
          Serial.print(eenhedenUren);
          Serial.print(":");
          Serial.print(tientallenMinuten);
          Serial.println(eenhedenMinuten);
         
          // datum berekenen
          eenhedenDag = DCF[36] * 1 + DCF[37] * 2 + DCF[38] * 4 + DCF[39] * 8;
          tientallenDag = DCF[40] * 1 + DCF[41] * 2;
          eenhedenMaand = DCF[45] * 1 + DCF[46] * 2 + DCF[47] * 4 + DCF[48] * 8;
          tientallenMaand = DCF[49] * 1;
          eenhedenJaar = DCF[50] * 1 + DCF[51] * 2 + DCF[52] * 4 + DCF[53] * 8;
          tientallenJaar = DCF[54] * 1 + DCF[55] * 2 + DCF[56] * 4 + DCF[57] * 8;
          dagVanDeWeek = DCF[42] * 1 + DCF[43] * 2 + DCF[44] * 4;

          // datum laten zien
          switch (dagVanDeWeek) {
          case 1:
          Serial.print("Maandag ");
          break;
          case 2:
          Serial.print("Dinsdag ");
          break;
          case 3:
          Serial.print("Woensdag ");
          break;
          case 4:
          Serial.print("Donderdag ");
          break;
          case 5:
          Serial.print("Vrijdag ");
          break;
          case 6:
          Serial.print("Zaterdag ");
          break;
          case 7:
          Serial.print("Zondag ");
          break;
          }
          Serial.print(tientallenDag);
          Serial.print(eenhedenDag);
          Serial.print("/");
          Serial.print(tientallenMaand);
          Serial.print(eenhedenMaand);
          Serial.print("/");
          Serial.print(tientallenJaar);
          Serial.println(eenhedenJaar);
          
        }
         else
         {
         Serial.println("Geen signaal");
         }   
         teller = 0;
       }
       else
       {
       teller = teller + 1;
       }
      
     TCNT1 = 0;
   }
else
  {
    // achterflank
    if ( TCNT1 < 2340)
       {
         DCF[teller] = 0;
       }
    else
       {
         DCF[teller] = 1;
       }
   }
}
Dit is de code van Arduino
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan