Arduino programmieren?

Kennt sich jemand hier aus um das zu programmieren

First Shield:

Es sollen die Taster S1 und S2 mittels Flankenerkennung eingelesen werden.

Es soll bei beiden Tastern die negative Flanke erkannt werden.

Die Flankenerkennung soll selbst programmiert werden.

Zusätzlich sollen die beiden Taster mittels geeigneter Software entprellt werden.

Funktion S1:

S1 schaltet die Zählrichtung um.

Die Zählrichtung wechselt bei jedem Drücken des Tasters zwischen Aufwärtszählung und

Abwärtszählung.

S2 wird als Zähleingang verwendet. Jeder Tastendruck wird gezählt und in einer Variablen

abgespeichert.

Diese Zählvariable wird "usi_zaehler" benannt und ist vom Datentyp unsigned short integer.

Diese Variable soll nur Werte zwischen 0 und 9 annehmen.

Hat die Variable eine der beiden Grenzen erreicht, so bleibt sie auf dem jeweiligen Wert stehen,

bis wieder ein Richtungswechsel durchgeführt wird.

7-Segment-Anzeige:

Die Zählvariable soll auf dem "DIGIT1" dargestellt werden.

Zusatz-Aufgabe für interessierte Schüler:

Entsprechend dem Wert der Zählvariable "usi_zaehler" von 0 bis 9 soll die RGB-Led von

0% bis 100% angesteuert werden und damit die Helligkeit entsprechend der 7-Segment-Anzeige

angesteuert werden.

Bei jedem Zählrichtungswechsel soll die Farbe der RGB-Led wechseln.

Die Reihenfolge der Farbwechsel lautet:

Rot-Grün-Blau-Alle drei Farben gleichzeitig-Rot-Grün-Blau-Alle drei Farben gleichzeitig - usw.

Computer, Technik, programmieren, Arduino, Technologie
Python Socket Encoding Error?
Hi, jedesmal wenn ich versuche mit dem Client eine Nachricht zu senden stürzt mir der Server ab. 

import socket
import threading


class TxtSocket:
    
    def __init__(self, host=socket.gethostbyname(socket.gethostname()) , port=5555, connection = 0, disconnect="!DISCONNECT"):
        self.host = host
        self.port = port
        self.connection = connection
        self.disconnect = disconnect
        self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.s.bind((self.host, self.port))
        print("Socket was created")


    def handle(self, conn, addr):
        while True:
            connection = threading.active_count() -1
            print(f"Connections: {connection}")
            data = conn.recv(1024).decode("utf8")
            if data == self.disconnect:
                conn.close()


            elif not data:
                break
            addr = str(addr[0])
            addr.encode()
            data.encode()
            print(type(data))
            print(type(addr))
            print(f"{addr}: {data}")
            self.s.send(addr[0], data)
        


    def server(self):
        self.s.listen(26)
        print("Server is listening")
        while True:
            conn, addr = self.s.accept()
            print(f"{addr} is now connected.")
            t = threading.Thread(target=self.handle, args=(conn, addr))
            t.start()
        


if __name__ == "__main__":
    txtsocket = TxtSocket()
    txtsocket.server()
 


#Client      
import socket


def Text():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((socket.gethostbyname(socket.gethostname()), 5555))
    print("Connected")
    while True:
        message = input("Deine Nachricht: ")
        message = message.encode("utf8")
        s.send(message)
Text()

ERROR:

Socket was created

Server is listening

('10.0.0.11', 55353) is now connected.

Connections: 1

<class 'str'>

<class 'str'>

10.0.0.11: s

Exception in thread Thread-1:

Traceback (most recent call last):

 File "C:\Users\Tobias\AppData\Local\Programs\Python\Python39\lib\threading.py", line 954, in _bootstrap_inner

  self.run()

 File "C:\Users\Tobias\AppData\Local\Programs\Python\Python39\lib\threading.py", line 892, in run

  self._target(*self._args, **self._kwargs)

 File "C:\Users\Tobias\OneDrive\Python\Server.py", line 30, in handle

  self.s.send(addr[0], data)

TypeError: a bytes-like object is required, not 'str'

Computer, programmieren, Informatik, Python
Webseite: Kennt sich jemand damit aus?

Und zwar brauche ich kurz hilfe. Ich möchte dass man im Registrier-Formular ein Profilbild auswählen kann. Wenn man Angemeldet ist, soll das eigene PB oben rechts in der Ecke angezeigt werden.

HTML-Code (Formular):

<div class="container">
      <div class="box">
		  <div class="scroll">
        <form action="" method="POST" class="login-email">
          <p class="login-text">Registrieren</p>
		<div class="profile-pic-div">
            <img src="img/default-pb.jpg" id="photo">
			<input type="file" id="file">
			<label for="file" id="uploadBtn">Profilbild Wählen</label>
          </div>
          <div class="input-group">
            <input type="text" placeholder="Benutzername" name="username" value="<?php echo $username; ?>" required>
          </div>
          <div class="input-group">
            <input type="email" placeholder="Email" name="email" value="<?php echo $email; ?>" required>
          </div>
          <div class="input-group">
            <input type="password" placeholder="Passwort" name="password" value="<?php echo $_POST['password']; ?>" required>
          </div>
          <div class="input-group">
            <input type="password" placeholder="Wiederhole das Passwort" name="cpassword" value="<?php echo $_POST['cpassword']; ?>" required>
          </div>
          <div class="input-group">
           <button name="submit" class="login-btn">Registrieren</button>
          </div>
          <p class="login-register-text">Du hast bereits ein Konto? <a href="https://www.klexxstube.com/anmelden">Melde dich an</a></p>
        </form>
			 </div>
      </div>
    </div>

Hier der Code zum Wechseln vom PB (JS):

const imgDiv = document.querySelector('.profile-pic-div');
const img = document.querySelector('#photo');
const file = document.querySelector('#file');


file.addEventListener('change', function() {
	const choosedFile = this.files[0];
	
	if (choosedFile) {
		
		const reader = new FileReader();
		
		reader.addEventListener('load', function() {
			img.setAttribute('src', reader.result);
		});
		
		reader.readAsDataURL(choosedFile);
	}
});

Vielleicht habt ihr auch eine komplett andere Version wie man so etwas schaffen kann.

LG Klexxsy

Bild zum Beitrag
Webseite, programmieren, JavaScript, PHP
Verkapselung von Klasse?

Hallo Coder-Freunde,

meine Freundin hat in einer Übung für die Uni folgende Java-Aufgabe zu lösen:

// ähnlich java.io.File.listFiles(), gibt aber nicht ein Array sondern ein Filez-Objekt zurück, das die File-Objekte des Directory als List<File> verkapselt

public static Filez create(File directory);

Folgendes haben wir bisher gemacht:

class Filez {

public Filez() {

this.list = new ArrayList<File>();

}

public static Filez create(File directory) { // File directory ist ein Objekt mit dem Pfad zum zu durchsuchenden Verzeichnis.

//List<File> list = new ArrayList<File>();

File[] filesAndDirs = directory.listFiles();

// Daten aus Array werden zu Liste hinzugefügt

for(int i = 0; i < filesAndDirs.length; i++) {

list.add(i, filesAndDirs[i]);

System.out.println(i + ": " + list.get(i));

}

return XXXXX; // Hier hängt's... wie soll eine Liste als Filez-Objekt zurückgegeben werden?

}

}

Mir persönlich erschließt sich die Formulierung "[... gibt ein] Filez-Objekt zurück, das die File-Objekte des Directory als List<File> verkapselt" nicht. Wie soll eine Methode als Returnwert ein Filez-Objekt vom Typ list zurückgeben?

Wir stehen hier auf dem Schlauch, bitte Hilfe!

UPDATE:

Antwort, falls jemand ein ähnliches Problem hat: Konstruktor erstellen!

public Filez() {} oder public Filez(List<File> attrList) { this.list = attrList; }

Return von create() ist dann das gesamte Objekt.

Computer, programmieren, Java, OOP Programmierung
Java : Warum wartet der Scanner nicht auf meine Eingabe?

Hallo,

Gebt mal folgenden Code bei euch ein und startet :

package Lernen;

import java.util.Arrays;
import java.util.Scanner;

public class CarSeller {

    int rColor = (int)(Math.random()*9);
    int color;
    int ps;
    int mark;
    String color2;
    String ps2;
    String mark2;
    String[] colorArray = new String[10];

    public void price(int color, int ps, int mark) {
        this.color = color;
        this.ps = ps;
        this.mark = mark;
    }

    public int RandomColor() {
        System.out.println(colorArray[rColor]);
        return 1;
    }

    public static void main(String[] args) {
        CarSeller acess = new CarSeller();
        acess.colorArray[0] = "Black";
        acess.colorArray[1] = "Green";
        acess.colorArray[2] = "Red";
        acess.colorArray[3] = "Orange";
        acess.colorArray[4] = "Blue";
        acess.colorArray[5] = "Cyan";
        acess.colorArray[6] = "White";
        acess.colorArray[7] = "Brown";
        acess.colorArray[8] = "Yellow";
        acess.colorArray[9] = "Grey";

        System.out.println("Hey, what do you want to do ? | BUYCAR | DRIVE | GOINHOUSE | BUYPLOTS | REFUEL | QUIT |");
        Scanner start = new Scanner(System.in);

        if (start.equals("BUYCAR")) {
            System.out.println("What car do you want to buy? | Lamborghini | Porsche | VW | Mercedes | BMW  | Tesla | CANCEL|");
            Scanner a = new Scanner(System.in);
            
            if (a.equals("Lamborghini")) {
                
                  CarSeller Lamborghini = new CarSeller();
                  System.out.println("Which color do you want ? | Choose one ");
                  System.out.println(Arrays.toString(acess.colorArray));
                  System.out.println("Or do you want a random color ? | Random");
                  Scanner colorchoose = new Scanner(System.in);
                  
                  if (colorchoose.equals("Random")) {
                      System.out.println(acess.RandomColor());
                  }


            }

        }
    }

}

Bei mir wartet der irgendwie nicht auf eine Eingabe... Wie behebe ich diesen Fehler ?

PC, Computer, Technik, IT, programmieren, Java, Informatik
Signalverarbeitung mit dem Mikrocontroller?

Schönen Sonntag euch!

Ich hätte eine Frage. Hänge leider schon seit einer Woche dran und suche dringend nach einer Antwort. Ich bin dabei drahtlos per Funk(433mhz) Signale von einem Mikrocontroller (Sender) zu einem anderen Mikrocontroller (Empfänger) zu versenden. Das Senden klappt wunderbar und ich habe alles per Oszi überprüft, das Empfangen jedoch ist eine Katastrophe.
Das Problem, ich kann keine Libaries von Arduino und co verwenden, muss also alles selber in C schreiben. Wenn etwas gesendet wird ist das Signal High, wenn nicht dann Low(Ist also ein Rechtecksignal).
Hier mein Pseudocode:

(Der Sender sendet dauerhaft 4100uS lange High Signale(senden) mit kurzen low unterbrechungen(nicht senden)

In einer Endlosschleife starte ich zuerst einen Timer der in mikroSekunden zählt

jetzt kommt eine leere While Schleife die solange nichts macht wie das Signal High ist(es wird etwas empfangen)

wenn die Whileschleife vorbei ist kommt eine if, die wenn der timer größer 4000 und kleiner 4200 ist( das eigentliche Signal ist ja 4100 uS) . Wenn diese if zutrifft soll ein Licht angehen.

Leider funktioniert es nicht und das Licht geht ab und zu mal an machmal aber auch nicht. wäre cool könnte jemand helfen und mir sagen was ich falsch mache oder einen anderen Vorschlag hat.

Danke im Vorraus!

Computer, Technik, programmieren, Elektrotechnik, Mikrocontroller, Datenverarbeitung, Informatik, Technologie, Signal

Meistgelesene Beiträge zum Thema Programmieren