Upisao sam neku skolu za programiranje u Javi, sobzirom da sam do sada ucio arduino ili C za mikrokontrolere imam veliku muku da shvatim neke stvari u Javi koje su mi mnogo lakse da razumem u C-u ali to je vise problem oko OOP jer mi je "lakse" da se snadjem u obicnom rednom programiranju sa funkcijama..
Mislim da cu odlepiti ako sad krenem sa C ili uC, bar dok ne zavrsim ovu skolu.
Jos brdo neispavanih noci jer sam skoro dobio dete, tako da sam vrlo optimistican po svemu tome ali mora da se gura napred..
Daleki cilj mi je da pravim module za zicno povezivanje (rs485) za kucnu automatiku, eventualno LAN, a da mi recimo kao glevni server bude nesto tipa Raspberry Pi koji se kontrolise preko mreze, i tako...
To su neki dugorocni planovi naravno, pa bih za pocetak da krenem sa atmega8 ili 328p ili atmega32u4 pa da ce posle prebacim na uC.
Evo koda za kapiju koji sam radio u arduinu:
// set pin numbers:
#define limitA1Pin 2 // the number of the open wing door A1 safety switch
#define limitA2Pin 3 // the number of the open wing door A2 safety switch
#define limitB1Pin 4 // the number of the close wing door B1 safety switch
#define limitB2Pin 5 // the number of the close wing door B2 safety switch
#define rfOpenPin 6 // the number of the RF Supra input OPEN pin
#define rfClosePin 7 // the number of the RF Supra input CLOSE pin
#define relayA1Pin 8 // the number of relay output for wing door A1
#define relayA2Pin 9 // the number of relay output for wing door A2
#define relayB1Pin 10 // the number of relay output for wing door B1
#define relayB2Pin 11 // the number of relay output for wing door B2
#define ledPin 13
// variables will change:
int limitA1 = 0;
int limitA2 = 0;
int limitB1 = 0;
int limitB2 = 0;
int rfOpen = 0;
int rfClose = 0;
int relayA1 = 0;
int relayA2 = 0;
int relayB1 = 0;
int relayB2 = 0;
void setup()
{
pinMode(limitA1Pin, INPUT); // initialize the pin as an input:
pinMode(limitA2Pin, INPUT); // initialize the pin as an input:
pinMode(limitB1Pin, INPUT); // initialize the pin as an input:
pinMode(limitB2Pin, INPUT); // initialize the pin as an input:
pinMode(rfOpenPin, INPUT); // initialize the pin as an input:
pinMode(rfClosePin, INPUT); // initialize the pin as an input:
pinMode(relayA1Pin, OUTPUT); // initialize the pin as an output:
pinMode(relayA2Pin, OUTPUT); // initialize the pin as an output:
pinMode(relayB1Pin, OUTPUT); // initialize the pin as an output:
pinMode(relayB2Pin, OUTPUT); // initialize the pin as an output:
pinMode(ledPin, OUTPUT);
}
void doorOpen() // door open function
{
digitalWrite(relayA1Pin, LOW); // open relay for door wing A1
while(digitalRead(limitA2Pin) == LOW) //
{
delay(3000);
digitalWrite(relayA2Pin, LOW);
while(digitalRead(limitA1Pin) == LOW)
{
}
digitalWrite(relayA1Pin, HIGH);
}
digitalWrite(relayA2Pin, HIGH);
}
void doorClose() // door close function
{
digitalWrite(relayB1Pin, LOW);
while(digitalRead(limitB2Pin) == LOW)
{
delay(3000);
digitalWrite(relayB2Pin, LOW);
while(digitalRead(limitB1Pin) == LOW)
{
}
digitalWrite(relayB1Pin, HIGH);
}
digitalWrite(relayB2Pin, HIGH);
}
void loop()
{
digitalWrite(relayA1Pin, HIGH);
digitalWrite(relayA2Pin, HIGH);
digitalWrite(relayB1Pin, HIGH);
digitalWrite(relayB2Pin, HIGH);
rfOpen = digitalRead(rfOpenPin);
rfClose = digitalRead(rfClosePin);
if (rfOpen == HIGH) {
digitalWrite(ledPin, HIGH);
doorOpen();
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
if (rfClose == HIGH) {
digitalWrite(ledPin, HIGH);
doorClose();
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}