Die Bestellung erfolgt durch Klick auf den Bestell-Button:
Dann öffnet sich Ihr e-mail-Programm mit den Bestell-Daten.
Rücktritt vom Kauf innerhalb von 14 Tagen
Teil 3 Ultraschall
ACHTUNG! Sie haben nur Zugang zu TINKERCAD,
wenn Sie angemeldet sind! So melden Sie sich an:
ACHTUNG!
Zur Schaltung geht es nur, wenn Sie bei TINKERCAD angemeldet sind!
Hier melden Sie sich an:
Die PDF-Dateien zum Ausdrucken als Schüler-Arbeitsblätter
sind auf Technik-online verfügbar.
#include <Servo.h>
#include <EEPROM.h>//used to store recorded values
Servo myServo;
float resolution = 1000;//MUST be less than EEPROM.length() (check serial monitor)
float recordTime = 5; //delay time
bool recording = false;
void setup() {
pinMode(13, OUTPUT); //status led
pinMode(2, OUTPUT);
myServo.attach(3);
Serial.begin(9600);
digitalWrite(2, HIGH);
//Serial.println(EEPROM.length());
}
void loop() {
if (recording == true) {//record
for (int i = 1; i <= resolution; i++) {
digitalWrite(13, HIGH); //light status led
int val = map(analogRead(A0), 0, 1023, 0, 180);
EEPROM.write(i, val);
//Serial.println(EEPROM.read(i));
myServo.write(val);
delay(recordTime);
}
digitalWrite(13, LOW); //turn off status led
delay(1000);//give time for person
recording = false;
}
else {
for (int i = 1; i <= resolution; i++) {//playback
if (digitalRead(2) == 0) {//stop playback and record new values
recording = true;
break;
}
//int val = map(analogRead(A0), 0, 1023, 0, 180);
int readval = EEPROM.read(i);
myServo.write(readval);
//Serial.println(readval);
delay(recordTime);
}
digitalWrite(13, HIGH); //show a new repeat
delay(50);
digitalWrite(13, LOW);
}
}
#include <Servo.h>
#include <EEPROM.h>//verwendet, um aufgezeichnete Werte zu speichern
Servo myServo;
float resolution = 1000;//MUSS kleiner als EEPROM.length() sein (überprüfen Sie den seriellen Monitor)
float recordTime = 5; //Verzögerungszeit
bool recording = false;
void setup() {
pinMode(13, OUTPUT); //Status-LED
pinMode(2, OUTPUT);
myServo.attach(3);
Serial.begin(9600);
digitalWrite(2, HIGH);
//Serial.println (EEPROM.länge());
}
void loop() {
if (recording == true) {//record
for (int i = 1; i <= resolution; i++) {
digitalWrite(13, HIGH); //light status led
int val = map(analogRead(A0), 0, 1023, 0, 180);
EEPROM.write(i, val);
//Serial.println(EEPROM.read(i));
myServo.write(val);
delay(recordTime);
}
digitalWrite(13, LOW); //turn off status led
delay(1000);//give time for person
recording = false;
}
else {
for (int i = 1; i <= resolution; i++) {//playback
if (digitalRead(2) == 0) {//stop playback and record new values
recording = true;
break;
}
//int val = map(analogRead(A0), 0, 1023, 0, 180);
int readval = EEPROM.read(i);
myServo.write(readval);
//Serial.println(readval);
delay(recordTime);
}
digitalWrite(13, HIGH); //zeige eine neue Wiederholung
delay(50);
digitalWrite(13, LOW);
}
}
Diese Website verwendet Cookies.
Bei Zustimmung klicken Sie auf
OK
Bitte lesen Sie unsere Datenschutzerklärung für Details.
Verweigern
Setzt ein technisches Cookie, das aufzeichnet, dass Sie die Zustimmung verweigern. Es wird nicht nochmals nachgefragt werden.
Entfernen
Entfernt das Zustimmungscookie aus Ihrem Browser.