Sensor cikisi okumak
  • Merhaba Arkadaslar ;

    Öncelikle cevaplariniz icin simdiden tesekkür ederim..Benim su an üzerinde calistigim bir proje ile ilgili sorum olacak..
    8*8 piezoresistive matrixim var (basinca karsi cikisa degisik degelerde gerilim veriyor)...basit bir sayici programiyla matrix in satir ve sütünlarini farkli hizlara ayarladim,böylece sensörü otomatik olarak tarayabiliyorum..her taramada sensörüm 64 degisik deger veriyor bu 64 degeri array de kaydetmem ve sonrasinda sonsuz döngü olmamasi icin 10 tarama yapsin ve cikisa bu 10 taramanin ortalamasini versin istiyorum..Arduino da yeniyim kendim birseyler yazdim..

    const int numReadings = 64; // Number of readings for each scan
    const int numLoop=10; //Number of loops for each scan
    float readings[numReadings]; // the readings from the analog input after each scan
    float totReadings[numLoop]; //total readings from the analog input scan
    int index_readings = 0; // the index of the current reading
    int index_loop=0; // the index of the current loop

    float average[numReadings]; //Averaged value

    int total[numReadings][numLoop];


    int inputPin = A0; //Determine the pin

    void setup()
    {
    Serial.begin(9600);
    // initialize all the readings
    for (int i = 0; i < numReadings; i++)
    readings[i] = 0;
    // initialize all the loops
    for(int j=0; j totReadings[j]=0;
    }
    void loop() {

    // read from the sensor:


    totReadings[numLoop]=totReadings[numLoop]+readings[index_readings];


    readings[index_readings] = analogRead(inputPin); //Read the data from sensor (64 values)

    // advance to the next position in the array:
    index_readings = index_readings + 1;


    index_loop = index_loop + 1;

    // if we're at the end of the array...
    if (index_readings >= numReadings)
    // ...wrap around to the beginning:
    index_readings = 0;

    if (index_loop >= numLoop)
    // ...wrap around to the beginning:
    index_loop = 0;

    //Take the average value
    average[numReadings]=totReadings[numLoop]/numLoop; //Averaged value divided by 10(number of loops)

    Serial.println(average[numReadings]); //Print the averaged value 64x1
    delay(100);


    }
    }
    }


    Kod hata vermiyor ama denemedim....saygilarimla..
  • kodu denemedim ama adım adım başlayın önce bir piezoyu daha sonra bir sıra piezoyu sonunda tüm piezolara göre programı geliştirin derim. kopyala yapıştır bir kodsa büyük ihtimal kafandaki şeyi yapmıyordur.
  • hayir bunu ben yazdim,ama devreyi kurmadim,yeniyim benim düsünceme göre bu kod calismali fakat array mantigini tam oturtamadim kafamda sanirim tek sorun o..
  • şurdaki http://arduinoturkiye.com/arduino-temel-baglantilar-arduino-basic-connections/ 9 nolu resim sağ tarafta matrix led bağlantısı var ledlerin yerine piezoları bağlarsın dirençleri de koyma. matrixin sol taraftaki bağlantıları analog pinlere bağla alttakiler sütun sürme bağlantıları olsun ve bunları da dijital pinlere bağla. önce birinci sütünu gnd/low yap diğer sütün çıkışları high olsun. böylece ilk sütündakileri sıra ile analog 1,2,3,4... diye okursun okumalar bitince diğer 2. sütunu low yap diğerleri high olsun bu sefer analog okumaları tekrar yap. bu okumaları alıp bir array de biriktir veya anında değerlendir. 8x8 için fazla bacak lazım olacak önce 4x4 ile kodunu yaz arduino bacağı yeter ozaman...
  • merhaba, sensörlerle ilgili bir sorunum var. 2 adet speed sensor shield kullanarak ileri geri tur sayan ve bir step motoru kontrol eden program var biraz değiştirerek bobin sarım makinesine uyarladım ama sürat artınca sayamıyor sensörlerin okuma hızı mı düşüktür yoksa programda daha hızlı okuması için birşeyler mi eklemeliyim. yanıtlarsanız cok sevinirim.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.