Ingo Hoffmann
Published © GPL3+

Infrarot Entfernungsmessung

Der IR Entfernungsmesser ist sehr leicht auszulesen, aber seine Werte entsprechen einer logarithmischen Funktion zur gemessen Entfernung.

BeginnerProtip2 hours256
Infrarot Entfernungsmessung

Things used in this project

Hardware components

Calliope mini
Calliope mini
×1
Seeed Studio SeeedStudio - Grove - 80cm Infrared Proximity Sensor
×1

Story

Read more

Schematics

Block-Editor Ansicht

Ansicht im PXT Block-Editor

Code

IR Entfernungsmessung mit Ausgabe im Terminalfenster

JavaScript
Einfach kopieren und in den PXT Editor unter JavaScript einfügen
let abstand = 0
let analogerWert = 0
basic.forever(() => {
    analogerWert = pins.analogReadPin(AnalogPin.C17)
    if (analogerWert <= 110) {
        abstand = 73
    } else {
        if (analogerWert <= 142) {
            abstand = pins.map(
                analogerWert,
                0,
                142,
                73,
                56
            )
        } else {
            if (analogerWert <= 184) {
                abstand = pins.map(
                    analogerWert,
                    142,
                    184,
                    56,
                    43
                )
            } else {
                if (analogerWert <= 247) {
                    abstand = pins.map(
                        analogerWert,
                        184,
                        247,
                        43,
                        32
                    )
                } else {
                    if (analogerWert <= 336) {
                        abstand = pins.map(
                            analogerWert,
                            247,
                            336,
                            32,
                            23
                        )
                    } else {
                        if (analogerWert <= 478) {
                            abstand = pins.map(
                                analogerWert,
                                336,
                                478,
                                23,
                                15
                            )
                        } else {
                            if (analogerWert <= 540) {
                                abstand = pins.map(
                                    analogerWert,
                                    478,
                                    540,
                                    15,
                                    13
                                )
                            } else {
                                if (analogerWert <= 676) {
                                    abstand = pins.map(
                                        analogerWert,
                                        540,
                                        676,
                                        13,
                                        10
                                    )
                                } else {
                                    abstand = 10
                                }
                            }
                        }
                    }
                }
            }
        }
        serial.writeString("analoger Wert = ")
        serial.writeNumber(analogerWert)
        serial.writeString(", umgerechneter Wert = ")
        serial.writeNumber(abstand)
        serial.writeLine("")
        basic.pause(500)
    }
})

Credits

Ingo Hoffmann

Ingo Hoffmann

1 project • 8 followers
Maker, Friedenauer, Alba-Fan

Comments