Arduino if Bedinung mit 2 Werten ?

ich schreibe gerade einen Sketch das man mit einem Taster 4 LEDS weiterschalten

und wen der 2 Taster gedrückt wird blinken die anderen LEDS .

aber bei der if Bedingung bei der beide werte überprüft werden funktioniert es nicht

Weiß da jemand weiter

Das ist der Sketch:

int taster1=7;
int taster2=8;


int tasterstatus1=0;
int tasterstatus2=0;


int led1=12;
int led2=11;
int led3=10;
int led4=9;


bool oldButtonState = HIGH;
bool newButtonState;
int count = 0;


void setup() {
 pinMode (taster1,INPUT);
pinMode (taster2,INPUT_PULLUP);




pinMode (led1,OUTPUT);
pinMode (led2,OUTPUT);
pinMode (led3,OUTPUT);
pinMode (led4,OUTPUT);
}


void loop() {
  newButtonState = digitalRead(taster1);
  
  tasterstatus2 = digitalRead(taster2);
  
  if (oldButtonState == HIGH && newButtonState == LOW) {
    count++;
    oldButtonState = newButtonState;


    if (count == 3) {
      digitalWrite(led1, HIGH);
    }
    if (count == 4) {
      digitalWrite(led1, LOW);
      digitalWrite (led2,HIGH);
    }


    if (count == 5 ){
      digitalWrite (led2,LOW);
      digitalWrite (led3,HIGH);
    }


    if (count == 6){
      digitalWrite (led3,LOW);
      digitalWrite (led4,HIGH);
    }


    if (count == 7){
      digitalWrite (led4,LOW);
    }




    


    if ((tasterstatus2 == HIGH && count == 3)){
      digitalWrite (led1,HIGH);
      delay (1000);
      digitalWrite (led1,LOW);
      digitalWrite (led2,HIGH);
      delay (1000);
      digitalWrite (led2,LOW);
      digitalWrite (led3,HIGH);
      delay (1000);
      digitalWrite (led3,LOW);
      digitalWrite (led4,HIGH);
      delay (1000);
      digitalWrite (led4,LOW);
    }




    if ((tasterstatus2 == HIGH) && (count == 4)){
      digitalWrite (led2,HIGH);
      delay (1000);
      digitalWrite (led2,LOW);
      digitalWrite (led3,HIGH);
      delay (1000);
      digitalWrite (led3,LOW);
      digitalWrite (led4,HIGH);
      delay (1000);
      digitalWrite (led4,LOW);
      digitalWrite (led1,HIGH);
      delay (1000);
      digitalWrite (led1,LOW);
    }
    
        
    delay(100);
  } else if (oldButtonState == LOW && newButtonState == HIGH) {
    oldButtonState = newButtonState;
  }
}
Computer, Programm, Arduino
Angular: Wieso wird Component zweimal aufgerufen?

Hi,

ich bin gerade dabei in Angular eine kleine Webseite zu erstellen. Einfach Just for Fun.

Kurz meine Components + Quellcode.

app-component.html

<app-toolbar></app-toolbar>


<router-outlet></router-outlet>

toolbar.component.html

<div class="head" style="background-color: darkgreen;">
    <div class="box">
            <button class="selectionButton" routerLink="/startseite">
                <div class="menuButton"></div>
                <div class="menuButton"></div>
                <div class="menuButton"></div>
            </button>
    </div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box">
        <button class="selectionButton">
            <font size="5">TypeScript</font>
        </button>    
    </div>
    <div class="box">
        <button class="selectionButton">
            <font size="5">Java</font>
        </button>    
    </div>
    <div class="box">
        <button class="selectionButton" routerLink="/htmluebersicht">
            <font size="5">HTML</font>
        </button>    
    </div>
    <div class="box">
        <button class="selectionButton">
            <font size="5">Cypress</font>
        </button>
    </div>
</div>

html-page.component.html

<p>html-page works!</p>

Wenn ich jetzt auf den Button HTML ("/htmluebersicht") klicke, kommt der Text "html-page works!" .... Alles gut, so solls.
Wenn ich jetzt aber wieder auf den Menü Button ("/startseite") klicke wird meine toolbar.component.html irgendwie zweimal auf der Webseite angezeigt.

Weis jemand wieso die toolbar dann zweimal angezeigt wird?

Ich hoffe es ist verständlich was ich meine.

Computer, Programm, HTML, Webseite, programmieren, Frontend, TypeScript, Angular
Wie bekomme ich aus einer Zahlenreihe, einer Arrayreihe innerhalb einer arraylist?

Moin!

Ich bin ein blutiger Anfänger, bzw wieder, weil ich alles vergessen habe.

Ich würde gerne eine Zahlenreihe, innerhalb einer Arraylist (name "vorbereiten"), in Arraylisten innerhalb einer Arraylist machen (name "allelisten").

Kein schöner weg und wahrscheinlich auch sehr ungwöhnlich :)

Ich habe mit biegen und brechen und viel lesen irgendwie grob was hin bekommen, obwohl ich es auch ehrlich gesagt noch nicht ganz verstehe.

Mein Ziel ist es, das aus der Zahlenreihe die schon fest in einer Arraylist ist, 3er blöcke als Arraylist zu machen, die zudem nach größe sortiert werden sollen

Also aus [ 14, 44 ,21 , 77, 49, 1, 66, 9,....]

soll werden:

[ [14, 21 ,44] , [1,49, 77], [9, 66,....]]

Ich habe probiert mit ",remove" das irgendwie hin zu basteln, sodass die ersten 3 zahlen in "vorbereiten" verschwinden, aber ich bekomme das nicht in einen loop gebaut, sodass die Zahlen aber trotzdem in "allelisten" bestehen bleiben.

Zudem weiss ich nicht, was ich anstatt der "10" bei "i<10; i++" einfügen muss, damit die ganze liste einmal durchgenommen wird. Es sind über 1000 zahlen.

Ich wäre sehr froh, wenn mir da jemand helfen könnte.

Vielen dank und bleibt gesund!

package eds;

import java.io.FileNotFoundException;
import java.util.ArrayList;

public class nhnbjbgn {

    public static void main(String[] args) throws FileNotFoundException {
        
        ArrayList<Integer> vorbereiten = new ArrayList<>();
        
        vorbereiten.add(14);
        vorbereiten.add(44);
        vorbereiten.add(21);
        vorbereiten.add(77);
        vorbereiten.add(49);
        vorbereiten.add(1);
        vorbereiten.add(66);
        vorbereiten.add(9);
        vorbereiten.add(99);
        
        
            ArrayList<ArrayList<Integer>> alleListen = new ArrayList<>();
            ArrayList<Integer> tmp;
            
            for(int i=0;i<10;i++){
                tmp=new ArrayList<>();
                if(i==0){
                    tmp.add(vorbereiten.get(0));
                    tmp.add(vorbereiten.get(1));
                    tmp.add(vorbereiten.get(2));
                }
                else{
                    tmp=(ArrayList<Integer>) alleListen.get(i-1).clone();
                    
                }
                alleListen.add(tmp);
            }
            System.out.print(vorbereiten);
            System.out.print(alleListen);
        }     
}

Bild zum Beitrag
Computer, Schule, Programm, programmieren, Java, Eclipse, Informatik
Wie kann ich meinen Python-Code schneller machen?

Hallo,

ich habe gestern in Python ein paar Funktionen geschrieben, die mir ein interessantes Bild ausrechnen sollen. Ich kriege es jedoch nicht hin, dass das Programm einigermaßen schnell läuft und am Ende muss auch die Auflösung darunter leiden

Wenn da mal jemand drüberschauen könnte, wäre das wirklich hilfreich.

import numpy as np
import matplotlib.pyplot as plt
from math import pi, sqrt, atan

#Punkt definieren
class point:
    def __init__(self,x=0,y=0,z=0):
        self.x = x
        self.y = y

    #Operationen
    def __str__(self):
        return "({0},{1})".format(self.x, self.y)

    def __add__(self, other):
        return point(self.x+other.x,self.y+other.y)

    def __sub__(self, other):
        return point(self.x - other.x, self.y - other.y)

    def __abs__(self):
        return sqrt(self.x**2 + self.y**2)

    def __mul__(self, other):
        if type(other) == point:
            return point(self.x * other.x, self.y * other.y)
        return point(self.x * other, self.y * other)

    def __truediv__(self, other):
        if type(other) == point:
            return point(self.x / other.x, self.y / other.y)
        return point(self.x / other, self.y / other)

    def __neg__(self):
        return point(-self.x,-self.y)

# weitere Funktionen für Punkte
def dis(PointA,PointB):
    return abs(PointB-PointA)

def dir(PointA,PointB):
    return (PointB-PointA)/dis(PointA,PointB)


#Funktion für den Wert
def grav_v(x,y,time=5,frames=60):
    p = point(-1,0)
    sp = point(x+1,y)

    c = point(0,0)
    sc = point(0,0)
    
    #Vielleicht wegen des for-loops so langsam?
    for k in range(frames*time):
        try:
            plus = dir(p,c) * 1/dis(p,c)**2 / frames
            sp += plus
            p += sp/frames
            sc -= plus
            c += sc/frames
        except:
            pass

    return p


#Funktion für das Bild
def grav_c(a=-4, b=4, smoothness=1):
    ROWS = []
    p = 0
    print(0)
    #zwei for-loops...
    for Y in np.linspace(a,b,int(200*smoothness)):
        row = []
        for X in np.linspace(a,b,int(200*smoothness)):
            g = grav_v(X, Y)
            row.append( (abs(atan(g.x)*2/pi), abs(atan(g.y)*2/pi), abs(atan(abs(g))*2/pi)) )
        ROWS.append(row)
        p += 1
        print(p / (200 * smoothness))
    plt.imshow(ROWS, extent=(a, b, a, b))
    plt.show()

grav_c()
Computer, Programm, programmieren, Effizienz, Informatik, Programmiersprache, Python
Probleme mit Cubase und Guitar Rig + Audio Interface?

Hallo. Ich hab ein Problem.

Und zwar: Ich hab ein Audio Interface: ( Focusrite 4i4 ) ein Mikrofon: ( Rode NT1A ) und ein Gitarrenprogramm ( Guitar Rig 6 ) und DAW: ( Cubase LE Al Elements 8 )

So... das Problem ist dass ich bei Guitar Rig 6 kein Ton höre sondern ( nur Clean Sound ) wenn ich dann einen Verstärker auswähle z.b Metal Verstärker knackst es und es kommen Stoppungen also man hört nicht wirklich was raus bzw. Input / Output Signal sieht man nicht beim anschlagen... wenn ich Guitar Rig in Cubase einfüge und was aufnehmen möchte hört man auch nichts vernünftiges raus...

Buffersize hab ich bei Guitar Rig auch schon hoch dann niedrig eingestellt aber bringt nichts... und bei Cubase wenn ich was aufnehmen möchte mit mein Mikrofon kommt gleich eine Meldung dass die Hardware getrennt worden ist ( wenn ich lauter singe ) und dann soll ich mein Audio Interface auswählen wenn ich das mache kommt wieder diese Meldung... Der Treiber müsste bei dem Audio Interface installiert sein also idk was da los ist...

Ich hab schon einige Produzenten angeschrieben aber keiner konnte mir helfen entweder weil die meisten mit Cubase nicht arbeiten oder mit Guitar Rig nicht arbeiten... Desweiteren habe ich auch Forume angeschaut wo aber die Erklärung komisch erklärt werden und Videos angeguckt die aber auf Englisch sind also wenig deutsche Videos davon und da hab ich einfach kein Nerv dazu... hab auch mit Thomann geschrieben ( E- Mail ) da haben sie mir auch paar Links geschickt was aber ebenfalls kompliziert ist und für mich nicht verständlich...

Und nur um zu erwähnen: ( Bin Weiblich 23 Jahre alt. )

Ich bin langsam verzweifelt und mehr als frustriert...

Hoffe ihr könnt mir da helfen denn das ganze ist mir wirklich wichtig! Da ich bald wie möglich wieder mit Musik anfangen möchte...

Daher Danke schonmal für eure Antworten...

Computer, Musik, Technik, Programm, Hardware, Homestudio, Technologie, Audio-Interface, Rode NT1-a

Meistgelesene Fragen zum Thema Programm