Sida 1 av 2

Analog in = ändra start

Postat: 9 november 2018, 20:44:59
av tecno

Kod: Markera allt

sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 0, 255);
Ovan fungerar men jag skulle vilja ändra på starten av utgående till inkommande 100 = 0 ut

Hur fasen löser man detta?

Re: Analog in = ändra start

Postat: 9 november 2018, 20:50:56
av lillahuset
Eh?

Re: Analog in = ändra start

Postat: 9 november 2018, 20:52:25
av tecno
Analog ingång på en Arduino 0-1023

Analog ut 0-255

Men vill att analog ut triggar först på analog in 100

Clear as mud ? :wink:

Re: Analog in = ändra start

Postat: 9 november 2018, 21:12:07
av lillahuset

Kod: Markera allt

sensorValue = analogRead(analogInPin);

if (sensorValue <= 100) {
    sensorValue = 0;
}

outputValue = map(sensorValue, 0, 1023, 0, 255);
Kanske? Ni har bra lera i Sparreholm.

Re: Analog in = ändra start

Postat: 9 november 2018, 21:18:08
av tecno
Tack!

Triggnivån vart OK men...

Analoga ut börjar från 25 och inte 0

Re: Analog in = ändra start

Postat: 9 november 2018, 21:21:00
av Klas-Kenny

Kod: Markera allt

sensorValue = analogRead(analogInPin);

if (sensorValue <= 100) {
    sensorValue = 0;
}

outputValue = map(sensorValue, 100, 1023, 0, 255);
Kanske...

Re: Analog in = ändra start

Postat: 9 november 2018, 21:26:13
av tecno
Nope, då är utgången triggad fullt ut och först vid *rätt* nivå så går den från 25-255

Re: Analog in = ändra start

Postat: 9 november 2018, 21:41:41
av lillahuset
Farbror kanske skulle vara lite tydligare då och skriva att 100..1023 in ska motsvara 0..255 ut? Eller något i den stilen.

Re: Analog in = ändra start

Postat: 9 november 2018, 21:42:04
av ToPNoTCH
Möjligtvis

Kod: Markera allt

outputValue = map(sensorValue, -102, 1023, 0, 255);
EDIT: Ähh blir ju inte heller rätt :tumner:

Re: Analog in = ändra start

Postat: 9 november 2018, 21:45:28
av tecno
lillahuset skrev:Farbror kanske skulle vara lite tydligare då och skriva att 100..1023 in ska motsvara 0..255 ut? Eller något i den stilen.

Var det inte det jag skrev? Lite trött är jag ;)

Re: Analog in = ändra start

Postat: 9 november 2018, 21:45:57
av tecno
ToPNoTCH skrev:Möjligtvis

Kod: Markera allt

outputValue = map(sensorValue, -102, 1023, 0, 255);
EDIT: Ähh blir ju inte heller rätt :tumner:

Näe = 0 blir 23 ut ;)

Re: Analog in = ändra start

Postat: 9 november 2018, 21:46:20
av ToPNoTCH
Nytt försök

Kod: Markera allt

outputValue = map(sensorValue - 100, 0, 923, 0, 255);

Re: Analog in = ändra start

Postat: 9 november 2018, 21:48:11
av tecno
det ger 27 ut ;)

Re: Analog in = ändra start

Postat: 9 november 2018, 22:11:53
av lillahuset
OK, så här då?

Resultat i bifogad fil.

Kod: Markera allt

#include <stdio.h>

int main(void)
{
  int tmp, sensorValue, outputValue;

  for (sensorValue = 0; sensorValue < 1024; sensorValue++) {
    if (sensorValue < 100) {
      tmp = 0;
    } else {
      tmp = sensorValue - 100;
    }

    outputValue = tmp * 255 / (1023 - 100);

    printf("%d\t%d\n", sensorValue, outputValue);
  }

  return 0;
} /* main */

Re: Analog in = ändra start

Postat: 9 november 2018, 22:16:02
av metric

Kod: Markera allt

sensorValue = analogRead(analogInPin)-100;
outputValue = map(sensorValue, 0, 1023, 0, 255);