newbie met lectuurvragen

Alles wat niet past in bovenstaande onderwerpen
Berichten: 11
Geregistreerd: 25 Okt 2017, 10:46

newbie met lectuurvragen

Berichtdoor WVS » 25 Okt 2017, 14:23

Hoi allen,
een gezamenlijk project, waarvan ik de opdrachtgever ben, is (tijdelijk?) in de koelkast beland. de persoon die de software voor zijn rekening had genomen, kan om persoonlijke redenen momenteel niet meer helpen.
Ik kan niet anders dan mij op een of andere manier te gaan inwijden in Arduino wil ik het project ergens meer slaagkans geven en uit de koelkast halen.
Hier op het forum ben ik al enkele links tegengekomen naar 'beginnen met programmeren in C++' en zal mij daar dan ook in verdiepen. Niet evident aangezien mijn kennis naar programmeren tot nul is herleid :oops:
Ik heb wel iemand die de hardware-part op zich neemt.
Maar ... ik vraag mij af of ik mij ook moet inlezen in de materialen die een Arduino vergt om tot werking te kunnen treden?
ik ken bvb niks van weerstanden, dus ook niet welke ik wanneer moet gebruiken. ( had ik in een vb gezien, dat er verschillende toegepast werden).
indien deze basiskennis best wel ingestudeerd moet worden, tot welke bronnen/boeken kan ik mij dan richten?
want ik kan mij voorstellen dat het kunnen programmeren mij enkel zal lukken als ik ook een beetje de andere kant van het verhaal ken en begrijp..

Ik hoop dat iemand mij op de goede weg kan helpen, studeren zal ik zelf moeten doen, dat weet ik, maar een 'begeleid' studeerproject zou leuk zijn.
Mochten er ook cursussen bestaan die aan te raden zijn tot het slagen van mijn doel, deze info is ook altijd welkom ;)

Dank alvast voor het begrip en de moeite.
Groetjes Wendy

Advertisement

Gebruikers-avatar
Berichten: 4875
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: newbie met lectuurvragen

Berichtdoor nicoverduin » 25 Okt 2017, 17:34

Wendy
Dit is allemaal wel heel vaag zo. Afhankelijk van welke hardware eraan hangt kun je wat zeggen of welke software kennis er nodig is. Idem of er enig elektronica kennis er vereist is. Als het bij wijze van spreken een pullup zou zijn is het allemaal niet belangrijk. Ga je daarin tegen de weerstand meten in een keten is het handig om de wet van ohm te kennen. Nu valt er weinig over te zeggen
Nico
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 11
Geregistreerd: 25 Okt 2017, 10:46

Re: newbie met lectuurvragen

Berichtdoor WVS » 25 Okt 2017, 19:40

Bedankt voor je reply!
om een lang verhaal kort te maken :
om sporttrainingen interessanter en aantrekkelijker te maken, hadden we voor ogen om 4 lichtpunten apart (later samen) te laten besturen vanop afstand, door een Arduino.
Er werd een script geschreven waardoor dit werkte met 1 zender en 4 ontvangers (1 per lichtpunt)
Tot op heden werkt het enkel om de 4 lichten serieel te laten oplichten, waarvan ik de tussentijd wel in seconden kan aanpassen met een soort van potentiometer.
Nu wil ik het script aanpassen zodat ik ook kan kiezen om ze parallel te laten oplichten.
Door het wegvallen van de software-schrijver, ben ik dus nu genoodzaakt om aan zelfstudie te doen, zodat ik het bestaande script 'begrijpend' kan leren lezen, maar ook om het in de toekomst te kunnen aanpassen naar de parallelle versie.
vandaar mijn vraag of ik bij het studeren mij enkel moet focussen op het leren schrijven en begrijpen, maar ook of ik de technische onderbouw erbij moet nemen.

de volgende stap in dat project was om de lichtpunten te verbinden met xbee's, om data-gegevens te kunnen verzamelen, en later met RFID/speler.

Indien nog te weinig info, of iets onduidelijk, zeg maar.

Gebruikers-avatar
Berichten: 4875
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: newbie met lectuurvragen

Berichtdoor nicoverduin » 26 Okt 2017, 07:44

Dan heb je nog wel een uitdaging. Naast een stukje basiskennis opbouwen komt het hele xbee verhaal erbij. De potentiometer ed zal het probleem niet zijn. Parallel aansturen van de verlichting eveneens niet. Ik zou dan nadrukkelijk kijken naar blink without delay.
Je mag je bestaande sketch ook hier zetten dan geven we wel wat tips.
Om je te helpen met opstarten zie tevens: https://www.gymnasiumnovum.nl/Portals/0 ... 0%20NL.pdf
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 11
Geregistreerd: 25 Okt 2017, 10:46

Re: newbie met lectuurvragen

Berichtdoor WVS » 26 Okt 2017, 12:31

Bedankt Nico voor je hulp!!
ik weet dat ik mij iets enorm op de hals haal, maar dat maakt de uitdaging alleen maar groter :D
de sketch van het huidige project is 12 pagina's lang ;) is dat geen probleem?
of kan ik deze op een andere manier toevoegen?

Gebruikers-avatar
Berichten: 4875
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: newbie met lectuurvragen

Berichtdoor nicoverduin » 26 Okt 2017, 12:33

Plak hem gewoon erin. Merk je gauw genoeg of past. 12 kantjes voor 4 lampjes is wel erg veel...
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 11
Geregistreerd: 25 Okt 2017, 10:46

Re: newbie met lectuurvragen

Berichtdoor WVS » 26 Okt 2017, 13:53

cpp code
//Footlight 2.0
//versie levering 3/03/2017
#include "Arduino.h"
#include <EEPROM.h>
#include <LiquidCrystal.h> // include the library code
//constants for the number of rows and columns in the LCD
const int numRows = 2;
const int numCols = 16;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 13, 5, 4, 3, 2);
const int pot = 1; //potentiometerTijd anaolog1
const int meerst = 0; //12-standen analog0
const int instelKnop = 6;
const int selectieKnop = 7;
//const int adresseringsKnop = ;
const int gnd_pin = 9; //AS GND
const int data_out = 10; //encoder DOUT
const int vcc_pin = 11; //AS VCC
int posPot = 0; //positie potentiometer tijdsinstelling
int pos12st = 1; //positie 12-standenschakelaar
int tijd1LampA = EEPROM.read(0);
int tijd2LampA = EEPROM.read(1);
int tijd3LampA = EEPROM.read(2);
int tijdLampA = EEPROM.read(3);
long tijdA = 0;
int tijd1LampB = EEPROM.read(4);
int tijd2LampB = EEPROM.read(5);
int tijd3LampB = EEPROM.read(6);
int tijdLampB = EEPROM.read(7);
long tijdB = 0;
int tijd1LampC = EEPROM.read(8);
int tijd2LampC = EEPROM.read(9);
int tijd3LampC = EEPROM.read(10);
int tijdLampC = EEPROM.read(11);
long tijdC = 0;
int tijd1LampD = EEPROM.read(12);
int tijd2LampD = EEPROM.read(13);
int sequentieel = EEPROM.read(14);
int tijdLampD = EEPROM.read(15);
long tijdD = 0;
int instellen = 0;
int selecteren = 0;
int token = 1;
// OSC Resistance is 3.3M
const int Osc_4xCycle = 359; //4 oscillating time periods
const int Osc_12xCycle = 1078; //12 oscillating time periods
unsigned long Temporary[3]; //Temporary storage unit
unsigned long previousMillisA = 0;
unsigned long previousMillisB = 0;
unsigned long previousMillisC = 0;
unsigned long previousMillisD = 0;
//output bit "0"
void bit_0() {
digitalWrite(data_out, HIGH);
delayMicroseconds(Osc_4xCycle); //4 oscillating time periods High level
digitalWrite(data_out, LOW);
delayMicroseconds(Osc_12xCycle); //12 oscillating time periods Low level
digitalWrite(data_out, HIGH);
delayMicroseconds(Osc_4xCycle); //4 oscillating time periods High level
digitalWrite(data_out, LOW);
delayMicroseconds(Osc_12xCycle); //12 oscillating time periods Low level
}
//output bit "1"
void bit_1() {
digitalWrite(data_out, HIGH);
delayMicroseconds(Osc_12xCycle); //12 oscillating time periods High level
digitalWrite(data_out, LOW);
delayMicroseconds(Osc_4xCycle); //4 oscillating time periods Low level
digitalWrite(data_out, HIGH);
delayMicroseconds(Osc_12xCycle); //12 oscillating time periods High level
digitalWrite(data_out, LOW);
delayMicroseconds(Osc_4xCycle); //4 oscillating time periods Low level
}
//output bit "f"
void bit_f() {
digitalWrite(data_out, HIGH);
delayMicroseconds(Osc_4xCycle); //4 oscillating time periods High level
digitalWrite(data_out, LOW);
delayMicroseconds(Osc_12xCycle); //12 oscillating time periods Low level
digitalWrite(data_out, HIGH);
delayMicroseconds(Osc_12xCycle); //12 oscillating time periods High level
digitalWrite(data_out, LOW);
delayMicroseconds(Osc_4xCycle); //4 oscillating time periods Low level
}
//output synchronous bit
void bit_syn() {
digitalWrite(data_out, HIGH);
delayMicroseconds(Osc_4xCycle); //4 oscillating time periods High level
digitalWrite(data_out, LOW);
delayMicroseconds(Osc_4xCycle * 31); //124 oscillating time periods Low level
}
//send:8 Address Bits, 4 Data Bits, Sync bit
void send_data() {
unsigned char temp, tab, i;
unsigned char j, k;
for (j = 0; j < 4; j++) {
for (k = 0; k < 3; k++) //send 8 Address Bits, 4 Data Bits
{
tab = Temporary[k];
for (i = 0; i < 4; i++) {
temp = tab;
temp &= 0xC0;
if (temp == 0xC0) //11 is bit "1"
{
bit_1();
} else if (temp == 0x00) //00 is bit "0"
{
bit_0();
} else //01 is bit "f"
{
bit_f();
}
tab = tab << 2;
}
}
bit_syn(); //send Sync bit
}
}
void setup() {
pinMode(selectieKnop, INPUT);
pinMode(instelKnop, INPUT);
//pinMode (adresseringsKnop, INPUT);
// initialize the encoder DOUT pin as an output
pinMode(data_out, OUTPUT);
pinMode(gnd_pin, OUTPUT);
pinMode(vcc_pin, OUTPUT);
digitalWrite(vcc_pin, HIGH); //SET VCC
digitalWrite(gnd_pin, LOW); //SET GND
Serial.begin(9600);
lcd.begin(numCols, numRows);
}
void loop() {
if (analogRead(pot) == 0 && digitalRead(7) == HIGH) { // selectie en 0-tijd
Temporary[2] = 0xC0; // 0xC0 channel A
send_data(); //send code word
Temporary[2] = 0x30; // 0x30 B channel
send_data(); //send code word
Temporary[2] = 0x0C; // 0x0C C channel
send_data(); //send code word
Temporary[2] = 0x03; // 0x03 D channel
send_data(); //send code word
}
posPot = analogRead(pot) * 12 / 204; //lees de stand van de potentiometer voortijds instelling
pos12st = (analogRead(meerst) + 30) / 93 + 1; //lees de stand van de 12-standen schakelaar
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("A");
lcd.print(tijdLampA);
lcd.setCursor(4, 0);
lcd.print("B");
lcd.print(tijdLampB);
lcd.setCursor(8, 0);
lcd.print("C");
lcd.print(tijdLampC);
lcd.setCursor(12, 0);
lcd.print("D");
lcd.print(tijdLampD);
if (pos12st == 1) //schakelaar stand 1
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd1 lampA = ");
lcd.print(posPot);
tijd1LampA = posPot;
EEPROM.write(0, tijd1LampA);
tijdLampA = posPot;
EEPROM.write(3, tijdLampA);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd1 lampA = ");
lcd.print(tijd1LampA);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampA = tijd1LampA;
EEPROM.write(3, tijdLampA);
}
} else if (pos12st == 2) //schakelaar stand 2
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd2 lampA = ");
lcd.print(posPot);
tijd2LampA = posPot;
EEPROM.write(1, tijd2LampA);
tijdLampA = posPot;
EEPROM.write(3, tijdLampA);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd2 lampA = ");
lcd.print(tijd2LampA);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampA = tijd2LampA;
EEPROM.write(3, tijdLampA);
}
} else if (pos12st == 3) //schakelaar stand 3
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd3 lampA = ");
lcd.print(posPot);
tijd3LampA = posPot;
EEPROM.write(2, tijd3LampA);
tijdLampA = posPot;
EEPROM.write(3, tijdLampA);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd3 lampA = ");
lcd.print(tijd3LampA);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampA = tijd3LampA;
EEPROM.write(3, tijdLampA);
}
} else if (pos12st == 4) //schakelaar stand 4
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd1 lampB = ");
lcd.print(posPot);
tijd1LampB = posPot;
EEPROM.write(4, tijd1LampB);
tijdLampB = posPot;
EEPROM.write(7, tijdLampB);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd1 lampB = ");
lcd.print(tijd1LampB);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampB = tijd1LampB;
EEPROM.write(7, tijdLampB);
}
} else if (pos12st == 5) //schakelaar stand 5
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd2 lampB = ");
lcd.print(posPot);
tijd2LampB = posPot;
EEPROM.write(5, tijd2LampB);
tijdLampB = posPot;
EEPROM.write(7, tijdLampB);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd2 lampB = ");
lcd.print(tijd2LampB);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampB = tijd2LampB;
EEPROM.write(7, tijdLampB);
}
} else if (pos12st == 6) //schakelaar stand 6
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd3 lampB = ");
lcd.print(posPot);
tijd3LampB = posPot;
EEPROM.write(6, tijd3LampB);
tijdLampB = posPot;
EEPROM.write(7, tijdLampB);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd3 lampB = ");
lcd.print(tijd3LampB);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampB = tijd3LampB;
EEPROM.write(7, tijdLampB);
}
} else if (pos12st == 7) //schakelaar stand 7
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd1 lampC = ");
lcd.print(posPot);
tijd1LampC = posPot;
EEPROM.write(8, tijd1LampC);
tijdLampC = posPot;
EEPROM.write(11, tijdLampC);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd1 lampC = ");
lcd.print(tijd1LampC);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampC = tijd1LampC;
EEPROM.write(11, tijdLampC);
}
} else if (pos12st == 8) //schakelaar stand 8
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd2 lampC = ");
lcd.print(posPot);
tijd2LampC = posPot;
EEPROM.write(9, tijd2LampC);
tijdLampC = posPot;
EEPROM.write(11, tijdLampC);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd2 lampC = ");
lcd.print(tijd2LampC);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampC = tijd2LampC;
EEPROM.write(11, tijdLampC);
}
} else if (pos12st == 9) //schakelaar stand 9
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd3 lampC = ");
lcd.print(posPot);
tijd3LampC = posPot;
EEPROM.write(10, tijd3LampC);
tijdLampC = posPot;
EEPROM.write(11, tijdLampC);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd3 lampC = ");
lcd.print(tijd3LampC);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampC = tijd3LampC;
EEPROM.write(11, tijdLampC);
}
} else if (pos12st == 10) //schakelaar stand 10
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd1 lampD = ");
lcd.print(posPot);
tijd1LampD = posPot;
EEPROM.write(12, tijd1LampD);
tijdLampD = posPot;
EEPROM.write(15, tijdLampD);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd1 lampD = ");
lcd.print(tijd1LampD);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampD = tijd1LampD;
EEPROM.write(15, tijdLampD);
}
} else if (pos12st == 11) //schakelaar stand 11
{
instellen = digitalRead(instelKnop);
if (instellen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd2 lampD = ");
lcd.print(posPot);
tijd2LampD = posPot;
EEPROM.write(13, tijd2LampD);
tijdLampD = posPot;
EEPROM.write(15, tijdLampD);
}
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Tijd2 lampD = ");
lcd.print(tijd2LampD);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
tijdLampD = tijd2LampD;
EEPROM.write(15, tijdLampD);
}
} else if (pos12st == 12) //schakelaar stand 12
{
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Ketting = ");
lcd.print(sequentieel);
selecteren = digitalRead(selectieKnop);
if (selecteren == HIGH) {
if (sequentieel == 0) {
sequentieel = 1;
} else
sequentieel = 0;
delay(300);
EEPROM.write(14, sequentieel);
}
}
unsigned long currentMillis = millis();
long tijdA = long(tijdLampA) * 1000;
long tijdB = long(tijdLampB) * 1000;
long tijdC = long(tijdLampC) * 1000;
long tijdD = long(tijdLampD) * 1000;
Temporary[0] = 0xC5; //address A7-A4
Temporary[1] = 0x55; //address A3-A0
switch (sequentieel) {
case 0:
if (currentMillis - previousMillisA >= tijdA) //trigger A channel relay.
{
Temporary[2] = 0xC0; // 0xC0 channel A
send_data(); //send code word
Serial.println("LampA");
previousMillisA = currentMillis;
} else if (currentMillis - previousMillisB >= tijdB) //trigger B channel relay.
{
Temporary[2] = 0x30; // 0x30 B channel
send_data(); //send code word
Serial.println("LampB");
previousMillisB = currentMillis;
} else if (currentMillis - previousMillisC >= tijdC) //trigger C channel relay.
{
Temporary[2] = 0x0C; // 0x0C C channel
send_data(); //send code word
Serial.println("LampC");
previousMillisC = currentMillis;
} else if (currentMillis - previousMillisD >= tijdD) //trigger D channel relay.
{
Temporary[2] = 0x03; // 0x03 D channel
send_data(); //send code word
Serial.println("LampD");
previousMillisD = currentMillis;
}
break;
case 1:
switch (token) {
previousMillisA = currentMillis;
case 1:
if (currentMillis - previousMillisA >= tijdA) //trigger A channel relay.
{
Temporary[2] = 0xC0; // 0xC0 channel A
send_data(); //send code word
Serial.println("LampA");
token = 2;
Serial.println(token);
previousMillisB = currentMillis;
}
break;
case 2:
if (currentMillis - previousMillisB >= tijdB) //trigger B channel relay.
{
Temporary[2] = 0x30; // 0x30 B channel
send_data(); //send code word
Serial.println("LampB");
token = 3;
Serial.println(token);
previousMillisC = currentMillis;
}
break;
case 3:
if (currentMillis - previousMillisC >= tijdC) //trigger C channel relay.
{
Temporary[2] = 0x0C; // 0x0C C channel
send_data(); //send code word
Serial.println("LampC");
token = 4;
Serial.println(token);
previousMillisD = currentMillis;
}
break;
case 4:
if (currentMillis - previousMillisD >= tijdD) //trigger D channel relay.
{
Temporary[2] = 0x03; // 0x03 D channel
send_data(); //send code word
Serial.println("LampD");
token = 1;
Serial.println(token);
previousMillisA = currentMillis;
}
break;
}
break;
}
}


Even de code geformatteerd. Leest beter. Nico

Berichten: 11
Geregistreerd: 25 Okt 2017, 10:46

Re: newbie met lectuurvragen

Berichtdoor WVS » 26 Okt 2017, 13:55

ik kan de 4 lampjes in serie laten branden.
en tussen ieder lampje kan ik de seconden zelf bepalen

Gebruikers-avatar
Berichten: 4875
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: newbie met lectuurvragen

Berichtdoor nicoverduin » 26 Okt 2017, 14:30

De code bekijkend, Is er nogal eea te verbeteren. En om te begrijpen wat hij (voor verbetering vatbaar) doet kun je commentaar gaan toevoegen. Dan krijg je een aardig beeld hoe het werkt.
Wat onduidelijk is, is welke ecnoder gebruikt wordt en hoe deze aangestuurd word. Weet jij daar meer van? DMX of zo?

Verder is er op dit moment iets van 7.8K Flash en 500 bytes aan RAM in gebruik. Grootste deel van RAM wordt nu opgebruikt door allerlei teksten. Breng je die naar Flash geheugen (F() ) dan is er voorlopig ruimte zat. Ook voor de XBee.
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 2435
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: newbie met lectuurvragen

Berichtdoor shooter » 26 Okt 2017, 16:28

Probeer eerst maar eens op te delen in functies, dan heb je dus voor elke functie een aparte pagina, zoals schrijven naar eprom, die hele case komt ook apart te staan etc.
en uiteraard commentaar, vooral zodat je weet wat er gebeurd.
En je hoeft je eigenlijk alleen maar in te lezen in de functies die op de arduino gebruikt zijn. dat kan prima door de reference te lezen.

En ja je zult hele stukken moeten anders schrijven, want nu is het 1 lange sequence die gelopen wordt. bijvoorbeeld die schakelaar oplossen met een case en in plaats van lampA etc gebruik liever lamp[1] etc, dan kun je het simpeler veranderen en wordt de setting ook een stuk kleiner.
paul deelen
shooter@home.nl

Volgende

Terug naar Theekransje

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten