Code kleiner maken

algemene C code
Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Code kleiner maken

Berichtdoor Jeroentjevrij » 18 Mrt 2019, 22:26

Ik wil graag weten of een arduino ook automatisch een led pin aan en uit kan zetten.
Ik heb een led kubus gemaakt.
En de pins als volgend gecodeerd.

void setup() {
pinMode(1, OUTPUT) ;
)
void Row1aan() {
digitalWrite(1, HIGH) ;
}
void Row1uit() {
digitalWrite(1, LOW);
}

Dus nu zet ik 1 rij aan en uit met.
Row1aan() ;
Row1uit() ;

Maar kan ik het ook zo instellen dat ik bijvoorbeeld ze aan en uit kan zetten door.

Row1() ; (rij 1 gaat aan)
Row1() ; (nu gaat hij weer uit)

Dat de arduino zeg maar zelf kijkt hij is low zet hij hem high bij Row1(); en andersom.

Advertisement

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Code kleiner maken

Berichtdoor Gij Kieken » 19 Mrt 2019, 00:07

Wel ja dat kan met de nodige code.

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code kleiner maken

Berichtdoor Jeroentjevrij » 19 Mrt 2019, 00:20

Meer code is niet erg want daardoor vervalt er heel veel code.
Alleen al op de 12 pins scheelt dat al 36 regels.
Mits de code in de setup gezet word en niet in de loop.
Kan je mij er mee op weg helpen.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Code kleiner maken

Berichtdoor Koepel » 19 Mrt 2019, 02:37

We hebben het heus wel door als je dezelfde vraag ook ergens anders plaatst.

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code kleiner maken

Berichtdoor Jeroentjevrij » 19 Mrt 2019, 10:19

Koepel schreef:We hebben het heus wel door als je dezelfde vraag ook ergens anders plaatst.


Ja en dat is een probleem?

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Code kleiner maken

Berichtdoor Koepel » 19 Mrt 2019, 11:04

Nee hoor, geen enkel probleem 8-)
Maar je kunt gerust noemen dat je ergens anders de vraag ook hebt gesteld. Misschien zitten we onze hersencellen voor niets te pijnigen terwijl iemand anders het antwoord al gegeven heeft.

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code kleiner maken

Berichtdoor Jeroentjevrij » 19 Mrt 2019, 12:13

Ok zal er op letten.

Ik heb op het andere forum gehoord de if functie te gebruiken.
En ben aan het puzzelen geweest en ik denk dat ik er sinds 10 minuten uit ben.
Code: Alles selecteren
int ledPin1 = 1;
int ledPin2 = 2;
int ledState = LOW;

void setup() {

    pinMode(ledPin1, OUTPUT);
    pinMode(ledPin2, OUTPUT);
}

void Row1() {
    ledState = digitalRead(ledPin1);
    if (ledState == HIGH) {
    digitalWrite(ledPin1, LOW);
    } else {
    digitalWrite(ledPin1, HIGH);
}
   
}
void Row2() {
    ledState = digitalRead(ledPin2);
    if (ledState == HIGH) {
    digitalWrite(ledPin2, LOW);
    } else {
    digitalWrite(ledPin2, HIGH);
}

}

void loop(){
    Row1();
    delay(500);
    Row2();
    delay(500);
    Row1();
    Row2();
}


Dit heb ik gefabriceerd zodra mijn nieuwe arduino binnen is zal ik hem testen.
En laten weten of hij het doet.
Dan kunnen andere hem ook gebruiken.

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code kleiner maken

Berichtdoor Jeroentjevrij » 19 Mrt 2019, 18:01

De code werkt.
Alleen mist deze nog een delay op het eind waar led 1 niet uit gaat.
Maar de functie doet het

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

Re: Code kleiner maken

Berichtdoor shooter » 19 Mrt 2019, 19:57

je kunt ook een functie maken door row(1,HIGH)te maken, dat scheelt weer code.en dan zet je de pinnen ook in een array, pin[2,3] of zo
gebruik pin 1 liever niet want daar hangt de seriele poort aan.
en leer hoe je kunt blink without delay (les2)
paul deelen
shooter@home.nl

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code kleiner maken

Berichtdoor Jeroentjevrij » 19 Mrt 2019, 20:11

shooter schreef:je kunt ook een functie maken door row(1,HIGH)te maken, dat scheelt weer code.en dan zet je de pinnen ook in een array, pin[2,3] of zo
gebruik pin 1 liever niet want daar hangt de seriele poort aan.
en leer hoe je kunt blink without delay (les2)


Had pin 1 hier alleen als voorbeeld.
Dit is hoe hij er nu uitziet.
Nog lang niet klaar.
Code: Alles selecteren
int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int ledPin4 = 10;
int ledPin5 =  9;
int ledPin6 =  8;
int ledPin7 =  7;
int ledPin8 =  6;
int ledPin9 =  5;
int ledPin10 = 4;
int ledPin11 = 3;
int ledPin12 = 2;
int ledState = LOW;

void setup() {     
    pinMode(ledPin1, OUTPUT);
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT);
    pinMode(ledPin4, OUTPUT);
    pinMode(ledPin5, OUTPUT);
    pinMode(ledPin6, OUTPUT);
    pinMode(ledPin7, OUTPUT);
    pinMode(ledPin8, OUTPUT);
    pinMode(ledPin9, OUTPUT);
    pinMode(ledPin10, OUTPUT);
    pinMode(ledPin11, OUTPUT);
    pinMode(ledPin12, OUTPUT);
    }

void Z1() {  
    ledState = digitalRead(ledPin1);  
    if (ledState == HIGH) { digitalWrite(ledPin1, LOW);  }
    else { digitalWrite(ledPin1, HIGH);
     }
}
void Z2() {  
    ledState = digitalRead(ledPin2);  
    if (ledState == HIGH) { digitalWrite(ledPin2, LOW);  }
    else { digitalWrite(ledPin2, HIGH);
     }
}
void Z3() {  
    ledState = digitalRead(ledPin3);  
    if (ledState == HIGH) { digitalWrite(ledPin3, LOW);  }
    else { digitalWrite(ledPin3, HIGH);
     }
}
void Z4() {  
    ledState = digitalRead(ledPin4);  
    if (ledState == HIGH) { digitalWrite(ledPin4, LOW);  }
    else { digitalWrite(ledPin4, HIGH);
     }
}
void Z5() {  
    ledState = digitalRead(ledPin5);  
    if (ledState == HIGH) { digitalWrite(ledPin5, LOW);  }
    else { digitalWrite(ledPin5, HIGH);
     }
}
void Z6() {  
    ledState = digitalRead(ledPin6);  
    if (ledState == HIGH) { digitalWrite(ledPin6, LOW);  }
    else { digitalWrite(ledPin6, HIGH);
     }
}
void Z7() {  
    ledState = digitalRead(ledPin7);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  }
    else { digitalWrite(ledPin8, HIGH);
     }
}
void Z8() {  
    ledState = digitalRead(ledPin8);  
    if (ledState == HIGH) { digitalWrite(ledPin8, LOW);  }
    else { digitalWrite(ledPin8, HIGH);
     }
}
void Z9() {  
    ledState = digitalRead(ledPin9);  
    if (ledState == HIGH) { digitalWrite(ledPin9, LOW);  }
    else { digitalWrite(ledPin9, HIGH);
     }
}
void L1() {  
    ledState = digitalRead(ledPin10);  
    if (ledState == HIGH) { digitalWrite(ledPin10, LOW);  }
    else { digitalWrite(ledPin10, HIGH);
     }
}
void L2() {  
    ledState = digitalRead(ledPin11);  
    if (ledState == HIGH) { digitalWrite(ledPin11, LOW);  }
    else { digitalWrite(ledPin11, HIGH);
     }
}
void L3() {  
    ledState = digitalRead(ledPin12);  
    if (ledState == HIGH) { digitalWrite(ledPin12, LOW);  }
    else { digitalWrite(ledPin12, HIGH);
     }
}
void Lall(){
    L1();
    L2();
    L3();
}
void Zall(){
    Z1();
    Z2();
    Z3();
    Z4();
    Z5();
    Z6();
    Z7();
    Z8();
    Z9();
}
void X1(){
    Z1();
    Z2();
    Z3();
}
void X2(){
    Z3();
    Z4();
    Z5();
}
void X3(){
    Z7();
    Z8();
    Z9();
}
void Y1(){
    Z1();
    Z4();
    Z7();
}
void Y2(){
    Z2();
    Z5();
    Z8();
}
void Y3(){
    Z3();
    Z6();
    Z9();
}
void loop(){
    for (int i = 0; i < 8; i++){
    Lall();
    Zall();
    delay(500);
}
    for (int i = 0; i < 4; i++){
    Lall();
    X1();
    delay(500);
    X1();
    X2();
    delay(500);
    X2();
    X3();
    delay(500);
    X3();
    delay(500);
}
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){ 
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();
}
    for (int i = 0; i < 16; i++){
    L1();
    Y1();
    delay(10);
    L1();
    Y1();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y3();
    delay(10);
    L3();
    Y3;
}
    for (int i = 0; i < 16; i++){
    L2();
    Y1();
    Y2();
    Y3();
    delay(10);
    L2();
    Y1();
    Y2();
    Y3();
}
    for (int i = 0; i < 16; i++){     
    L1();
    Y3();
    delay(10);
    L1();
    Y3();
    L2();
    Y2();
    delay(10);
    L2();
    Y2();
    L3();
    Y1();
    delay(10);
    L3();
    Y1();
}
    for (int i = 0; i < 16; i++){   
    L1();
    L2();
    L3();
    Y2();
    delay(10);
    L1();
    L2();
    L3();
    Y2();

    }


en wat bedoel je precies met de pinnen in array zetten.
Zoiets?

pinMode(13,12,11,10,9,8,7,6,5,4,3,2)

Volgende

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 12 gasten