Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Ardunio ve 16f877a haberlesmesi

Başlatan Atima, 13 Haziran 2021, 09:37:39

Atima

Merhabalar tcs3200 sensorunu ardunio ile calistirip 16f877a ya bilgileri nasil aktarabilirim
(Pic ile tcs3200u calistiramadigim icin.)

fahri-

uart, i2c, spi haberleşmeleri kullanarak birbirleriyle haberleştirebilirsin.

Atima

Alıntı yapılan: fahri- - 13 Haziran 2021, 09:40:04uart, i2c, spi haberleşmeleri kullanarak birbirleriyle haberleştirebilirsin.
Ornek bi kod varmidir elinizde ?

Atima

Ornegin arduniodan sensorle rengin mavi oldugunu belirledim ve pice bagli elemanlar ona gore calisicak. Cisim maviyse pice bagli olan buzzer otmesi veya dc motorun donmesi gibi..

fahri-

Hazır kod yok. Önce bu haberleşmeleri internetten bul ve oku nasıl çalıştıklarını. Sonra kullandığın MCU larda nasıl kullanılıyor onu araştır.

magnetron

#5
burda renk frekanslarını sayarak değil dutysini ölçerek
renk sensörü okunmuş STM32 için

parametre 100 101 102 103 adreslerine mavi kırmızı yeşil şeffaf hangi cismi renk sensörüne gösterirsen o andaki renk değerleri oluşuyor

imzamdaki plc linkinde videolardan birinde çalışması gösteriliyor

void EXTI15_10_IRQHandler(void)
{
uint16_t *Cptr=&RAM[PARAMETERS+100*2];
uint8_t cik =0;uint32_t average=0;
    /* Clear the Key Button EXTI line pending bit */
    EXTI_ClearFlag(EXTI_Line12);
    EXTI_ClearITPendingBit(EXTI_Line12); 

    Capture = TIM7->CNT;
      if (Capture > CaptureM) CSduty = (Capture - CaptureM);
      else CSduty = ((0xFFFF - CaptureM) + Capture); 
    CaptureM = Capture;
      
    Cresult[counter]=CSduty;
    counter++ ; if (counter > 9) {
    counter =0;for (cik=0;cik<10;cik++) average+=Cresult[cik];
    if (S==0){Cptr++;Cptr++;Cptr++;*Cptr = average/10;} // 103 KIRMIZI
    if (S==1){*Cptr = average/10;}                      // 100 CLEAR
    if (S==2){Cptr++; *Cptr = average/10;}              // 101 MAVI
    if (S==3){Cptr++;Cptr++; *Cptr = average/10;}      // 102 YESIL
    S++;if (S>3)S=0;
    if (S==0){GPIOA->BRR  = S2;GPIOB->BRR = S3;}
    if (S==1){GPIOA->BSRR = S2;GPIOB->BRR = S3;}
    if (S==2){GPIOA->BRR  = S2;GPIOB->BSRR = S3;}
    if (S==3){GPIOA->BSRR = S2;GPIOB->BSRR = S3;}
}
/*    EXTI_ClearFlag(EXTI_Line12);
    EXTI_ClearITPendingBit(EXTI_Line12);*/
}

sadogan

#6
Arduino dan gönder pic le oku, hoca yermi bunu ?

Atima

Alıntı yapılan: sadogan - 13 Haziran 2021, 15:22:29Arduino dan gönder pic le oku, hoca yermi bunu ?
Kodlama da paylasiliyor  :)

sadogan

https://www.picproje.org/index.php/topic,79632.0.html
Burdaki capture yapısı çalışıyor. Neden bunu çalıştıramadığınıza bakın.
En azından proteust ta test edin. Gösterdiğiniz montaj düzeninde saç baş yolma ihtimaliniz hayli yüksek(yoluyorsunuzda).

Atima

Alıntı yapılan: sadogan - 13 Haziran 2021, 19:02:48https://www.picproje.org/index.php/topic,79632.0.html
Burdaki capture yapısı çalışıyor. Neden bunu çalıştıramadığınıza bakın.
En azından proteust ta test edin. Gösterdiğiniz montaj düzeninde saç baş yolma ihtimaliniz hayli yüksek(yoluyorsunuzda).

Renk sensoru icin ardunio kullanacagim icin capture veya timerle isim kalmadi
Evet baya sac bas yoldum...