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!
Dit is de code van Arduino
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;
}
}
}