60 nap alatt Arduino #23

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Válasz küldése
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

60 nap alatt Arduino #23

Hozzászólás Szerző: etwg »

Egy kis fényjáték:

Kód: Egész kijelölése

/* LESSON 23A
 *  ANALOG INPUT
 *  
 */
int sensorPIN = A6;     // Analog input - potentiometer
int LED1 = 2;
int sensorValue;        // the value from analog source
int LED=2;
int i=0;

void setup() {
Serial.begin(9600);
  pinMode(LED1,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
}

void loop() {
  sensorValue = analogRead(sensorPIN);
  int LED=sensorValue/108;
  
  Serial.println(sensorValue);
  Serial.println(LED);
  for (i=1;i<=LED;i++){
  Serial.println(i);
  digitalWrite(i,HIGH);
  delay(sensorValue/(i*3));       //
  digitalWrite(i,LOW);
  delay(sensorValue/(i*3));
  }
}     
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Avatar
etwg
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2011. február 7. hétfő, 7:00

Re: 60 nap alatt Arduino #23

Hozzászólás Szerző: etwg »

Egy ujabb változat uj parancsokkal és változo kezeléssel:
A pin arrayba int pin[]={2,3,4,5,6,7,8,9}; bármennyi portot és bármilyen sorrendben be lehet irni. A LLED változonak mindig a beirt számok mennyiségét kell tartalmaznia.
A futofény hossza és sebessége a poti állásátol függ.
a "z" változo az array mutatoja, azaz, abban a sorrendben kapcsolja a LEDeket ahogy azok a arrayba be vannak irva. Az array mutatoja mindig a 0 pozicioval kezdödik, azaz pin[0]=2, pin[7]=9.
Ezért kellett az "i" változobol a "z" változot átszámolni z=i-1, az "i" nem lehet 0 értékü, mert akkor az osztás nem müködne sensorValue/(i*i) megakasztaná a programot.

Az int LED=map(sensorValue,0,1023,1,(LLED+1)); átalakitja az analog bemenetet (sensorValue) a 0-1023 tartományból az array hosszának a tartományába. Itt ujra ugyanaz a gond, mint a "z" esetében. Az uj értéktartomány 1- töl kezdödik (nem 0-tol), igy a felsö végét meg kell eggyel hosszabitani a (LLED+1) kifejezéssel.


Kód: Egész kijelölése

/* LESSON 23A
 *  ANALOG INPUT
 *  
 */
int pin[]={2,3,4,5,6,7,8,9};    // ARRAY of LEDS - PINs
int LLED=8;                      // Content of Array


const int sensorPIN = A6;     // Analog input - potentiometer

int sensorValue;        // the value from analog source


int i=0;



void setup() {
Serial.begin(9600);
  pinMode(sensorPIN,INPUT_PULLUP);
  for (int i=0; i<11; i++){
    pinMode(pin[i],OUTPUT); 
  }

}


void loop() {
  sensorValue = analogRead(sensorPIN);

  int LED=map(sensorValue,0,1023,1,(LLED+1));  //  map of analog conversion, 
  for (i=1;i<=LED;i++){
  int z=i-1;                            // new variable for array pointer (i-1)
  digitalWrite(pin[z],HIGH);
  delay(sensorValue/(i*i));             //
  digitalWrite(pin[z],LOW);
  }
}     
  
Éljenek a vonatok!

http://www.youtube.com/playlist?list=PLF2674BF4E3765682
Zsolesz73
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2020. január 29. szerda, 9:02

Re: 60 nap alatt Arduino #23

Hozzászólás Szerző: Zsolesz73 »

Kód: Egész kijelölése

[code]
/*
  AnalogInput
  60 nap alatt arduino tanfolyam
  (c) TavIR http://www.tavir.hu
 */
 
int sensorPin = A1;
    //errol az analog labrol olvasunk


void setup() {
  Serial.begin(9600);
  analogReference(INTERNAL);
    // belso referencia
}
 
void loop() {
  Serial.print("Analog 1:");
  Serial.println(analogRead(sensorPin));
  delay(1000);                  
}
[/code]

A DEFAULT és az EXTERNAL változat működik, az INTERNAL hibára fut: 'INTERNAL' was not declared in this scope
Arduino Mega 2560
realsasa
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2020. február 23. vasárnap, 12:45

Re: 60 nap alatt Arduino #23

Hozzászólás Szerző: realsasa »

Sziasztok
a legelső nekifutásra sem működött, de nem volt időm vele bíbelődni most megint nekiültem és még mindig ez van :(

int sensorPin = A1;
//errol az analog labrol olvasunk
analogReference(DEFAULT);
// alapertelmezett a referencia

void setup() {
Serial.begin(9600);
}

void loop() {
Serial.print("Analog 1:");
Serial.println(analogRead(sensorPin));
delay(1000);
}

-------------------------------------------------------------------------------------------------------------------------
Hibaüzenet:

Arduino: 1.8.10 (Windows 10), Alaplap:"Arduino/Genuino Uno"
lecke23:3:16: error: expected constructor, destructor, or type conversion before '(' token
analogReference(DEFAULT);
^
exit status 1
expected constructor, destructor, or type conversion before '(' token

Ennek a jelentésnek több információja lehetne
a "Bővebb kimenet mutatása fordításkor"
opció engedélyezésével a Fájl -> Beállítások-ban.
-------------------------------------------------------------------------------------------------------------------------
Arduino: 1.8.10 (Windows 10), Alaplap: "Arduino / Genuino Uno"
lecke23: 3: 16: hiba: várható konstruktor, pusztító vagy típuskonverzió a '(' token előtt)
analogReference (BELSŐ);
^
kilépési állapot 1
várható kivitelező, pusztító vagy típuskonverzió a '(' token előtt)
Egy jelentést több információja lehetne
a "Bővebb kimenet mutatása fordításkor"
opció elérhetőzésével a rendszerben -> Beállítások-ban.
----------------------------------------------------------------------------------------------------------------------------

(INTERNAL); -nál szintén ez a hibaüzenet
Zsolesz73
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2020. január 29. szerda, 9:02

Re: 60 nap alatt Arduino #23

Hozzászólás Szerző: Zsolesz73 »

analogReference(DEFAULT); sort helyezd át a void setup() { -ba
Arduino Mega 2560
Zsolesz73
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2020. január 29. szerda, 9:02

Re: 60 nap alatt Arduino #23

Hozzászólás Szerző: Zsolesz73 »

Zsolesz73 írta:

Kód: Egész kijelölése

[code]
/*
  AnalogInput
  60 nap alatt arduino tanfolyam
  (c) TavIR http://www.tavir.hu
 */
 
int sensorPin = A1;
    //errol az analog labrol olvasunk


void setup() {
  Serial.begin(9600);
  analogReference(INTERNAL);
    // belso referencia
}
 
void loop() {
  Serial.print("Analog 1:");
  Serial.println(analogRead(sensorPin));
  delay(1000);                  
}
[/code]

A DEFAULT és az EXTERNAL változat működik, az INTERNAL hibára fut: 'INTERNAL' was not declared in this scope
Megoldva! (INTERNAL1V1);........(INTERNAL2V56); a megfelelő formátum.
Arduino Mega 2560
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: 60 nap alatt Arduino #23

Hozzászólás Szerző: Robert »

Arduino 1.8.10 és 11 NE!

Rengeteg dolgot megváltoztattak a korábbihoz képest, kompatibilitás elment nyaralni :(
http://www.tavir.hu - a gazda :)
realsasa
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2020. február 23. vasárnap, 12:45

Re: 60 nap alatt Arduino #23

Hozzászólás Szerző: realsasa »

Oké
Köszönöm szépen :)
Válasz küldése