Faz sırası doğruluğu

Başlatan Akaan, 11 Aralık 2022, 13:37:56

Serk@n

#45
Alıntı yapılan: Akaan - 15 Aralık 2022, 23:00:04Çalışmadı hocam. Faz doğru ve yanlış ledleri ( takip için LED bağladım) sırayla yanıyor.

Else'leri ekledim. Zaman hatamı düzelttim.

if (input(R_faz)==1) && (input(S_faz)==0) && (input(T_faz)==0)
{
//1. koşul oluştuysa
delay_ms(6.66); //120 derece
if (input(R_faz)==0) &&
(input(S_faz)==1) &&
(input(T_faz)==0)
 {
  //2. koşul oluştuysa
  delay_ms(6.66); //120 derece
  if (input(R_faz)==0) &&
  (input(S_faz)==0) &&
  (input(T_faz)==1)
  {
   //3. koşul oluştuysa
   printf("faz_sırası_dogru")
  }
  Else //3.koşul oluşmadıysa
  {
   printf("faz_sırası_yanlis")
  }
 Else //2. koşul oluşmadıysa
 {
  printf("faz_sırası_yanlis")
 }
}
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

Serk@n

Algoritmayı çözmeden önce temel matematik bilgisi lazımmış demek ki. 360 dereceyi 6'ya bölüp 40 derece bulmuşum. :-X

Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

mehmet

#47
Alıntı yapılan: Akaan - 15 Aralık 2022, 23:11:39Ben projedeki seneryomu anlatayım.  Benimm 2 motorum var
Faz kopukluğu faz sırası ve akım ayarı koyacağım. Buzzer eklemeyi düşünüyorum
ileri butonu basılıyken geri butonu pasif, swichler ayrı ayrı sebebi ise yanan motorları sardırdığımızda illaki güç kaybı oluyor. Aynı değerdeki motorlar farklı devirlerde dönüyor
. İleri geri sürüyorum. Tek tek ve ikisi birden. Portlarım sınırlı çünkü fonksiyonlarm
İleri
Geri
Motor1
Motor2
Sağswich
Solswich
Acil stop
Bluetooth kontrol. Bunu şımarıklıktan koydum 😁 uzaktan makinayı devre dışı bırakıyorum

Triyaklar 10 portu kullanıyor zaten.
Butonlar ledler LCD vdd osc derken şuan  5port boşta. R0 E1 E2 c3 C4

Sepet vinci mi?

Ayrıca üç faz için blok sigortalar ve termikler var.
Sistem iki faza düşünce enerji kesilir/kesilmelidir.

Ek:
Optonun iletime girdiği zamanı hesaplayın. Ayrıca
bekleme zamanına gerek kalmayacak.
Mesela PC817 ledinden 5mA geçtiğinde
ilgili faz kaç derece ilerlemiş olabilir?
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

Akaan

#48
Alıntı yapılan: mehmet - 16 Aralık 2022, 02:43:02Sepet vinci mi?

Ayrıca üç faz için blok sigortalar ve termikler var.
Sistem iki faza düşünce enerji kesilir/kesilmelidir.

Ek:
Optonun iletime girdiği zamanı hesaplayın. Ayrıca
bekleme zamanına gerek kalmayacak.
Mesela PC817 ledinden 5mA geçtiğinde
ilgili faz kaç derece ilerlemiş olabilir?

Değil hocam bant bizimki.  Vinç le aynı gibi yerde sürünüyor bizimki 🙂. PC 817 ledinden geçen akımla derece bulamam ki hocam. En azından ben yolunu bilmiyorum

Akaan

Alıntı yapılan: Serk@n - 16 Aralık 2022, 00:17:27Algoritmayı çözmeden önce temel matematik bilgisi lazımmış demek ki. 360 dereceyi 6'ya bölüp 40 derece bulmuşum. :-X


🙂 Aslında elektirikle inatlaşmamak gerek. O diyor 6.66 ms içinde ben bayrağı sıradaki faza devrediyorum. Biz diyoruz yok sen 4.0ms de devret.

Akaan

#50
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <delay.h> // Include delay library for delay functions
#include <input.h> // Include input library for input functions

#define PHASE_1_DELAY 6.66 // Define the delay for phase 1 in milliseconds
#define RESET_SWITCH PIN_B0 // Define the reset switch input pin

// Functions for initializing and controlling the LCD display
void lcd_init();
void lcd_print(char *str);

// Functions for controlling the 3-phase motor
void set_phase_1();
void set_phase_2();
void set_phase_3();

int main()
{
    // Initialize the LCD display
    lcd_init();

    // Set the initial phase to phase 1
    set_phase_1();

    while (1)
    {
        // Check the reset switch input
        if (input(RESET_SWITCH))
        {
            // Reset the phase sequence
            set_phase_1();
        }

        // Delay for the defined time
        delay_ms(PHASE_1_DELAY);

        // Set the next phase
        set_phase_2();

        // Delay for the defined time
        delay_ms(PHASE_1_DELAY);

        // Set the next phase
        set_phase_3();

        // Delay for the defined time
        delay_ms(PHASE_1_DELAY);

        // Set the next phase (back to phase 1)
        set_phase_1();

        // Check the input on ports R0, E0, and E1
        if (input(PIN_R0) && !input(PIN_E0) && !input(PIN_E1))
        {
            // Phase sequence is correct
            lcd_print("Phase sequence: correct");
        }
        else
        {
            // Phase sequence is incorrect
            lcd_print("Phase sequence: incorrect");
        }
    }

    return 0;
}

void lcd_init()
{
    // Initialize the LCD display
    // ...
}

void lcd_print(char *str)
{
    // Print the given string to the LCD display
    // ...
}

void set_phase_1()
{
    // Set the 3-phase motor to phase 1
    // ...
}

void set_phase_2()
{
    // Set the 3-phase motor to phase 2
    // ...
}

void set_phase_3()
{
    // Set the 3-phase motor to phase 3
    // ...
}



Akaan

Faz sırası faz kopukluğu için işimi görmez mi bu

// define constants for R0, E0, and E1
const int R0 = 2;
const int E0 = 3;
const int E1 = 4;

// define constants for LCD pins
const int LCD_RS = 5;
const int LCD_EN = 6;
const int LCD_D4 = 7;
const int LCD_D5 = 8;
const int LCD_D6 = 9;
const int LCD_D7 = 10;

void setup() {
  // initialize LCD
  lcd.begin(16, 2);

  // set pin modes for R0, E0, and E1
  pinMode(R0, INPUT);
  pinMode(E0, INPUT);
  pinMode(E1, INPUT);
}

void loop() {
  // wait for R0 to go high
  while (digitalRead(R0) == LOW) {
    delay(10);
  }

  // introduce a 6.66 millisecond delay
  delay(6.66);

  // check if E0 is high
  if (digitalRead(E0) == HIGH) {
    // introduce another 6.66 millisecond delay
    delay(6.66);

    // check if E1 is high
    if (digitalRead(E1) == HIGH) {
      // correct phase sequence
      lcd.print("Correct phase sequence");
    } else {
      // incorrect phase sequence
      lcd.print("Incorrect phase sequence");
    }
  } else {
    // incorrect phase sequence
    lcd.print("Incorrect phase sequence");
  }

  // check if E0 and E1 are both low
  if (digitalRead(E0) == LOW && digitalRead(E1) == LOW) {
    // phase is missing or disconnected
    lcd.print("Phase missing or disconnected");
  }
}


Serk@n

Alıntı yapılan: Akaan - 16 Aralık 2022, 08:08:56Faz sırası faz kopukluğu için işimi görmez mi bu

// define constants for R0, E0, and E1
const int R0 = 2;
const int E0 = 3;
const int E1 = 4;

// define constants for LCD pins
const int LCD_RS = 5;
const int LCD_EN = 6;
const int LCD_D4 = 7;
const int LCD_D5 = 8;
const int LCD_D6 = 9;
const int LCD_D7 = 10;

void setup() {
  // initialize LCD
  lcd.begin(16, 2);

  // set pin modes for R0, E0, and E1
  pinMode(R0, INPUT);
  pinMode(E0, INPUT);
  pinMode(E1, INPUT);
}

void loop() {
  // wait for R0 to go high
  while (digitalRead(R0) == LOW) {
    delay(10);
  }

  // introduce a 6.66 millisecond delay
  delay(6.66);

  // check if E0 is high
  if (digitalRead(E0) == HIGH) {
    // introduce another 6.66 millisecond delay
    delay(6.66);

    // check if E1 is high
    if (digitalRead(E1) == HIGH) {
      // correct phase sequence
      lcd.print("Correct phase sequence");
    } else {
      // incorrect phase sequence
      lcd.print("Incorrect phase sequence");
    }
  } else {
    // incorrect phase sequence
    lcd.print("Incorrect phase sequence");
  }

  // check if E0 and E1 are both low
  if (digitalRead(E0) == LOW && digitalRead(E1) == LOW) {
    // phase is missing or disconnected
    lcd.print("Phase missing or disconnected");
  }
}


Bu tamam gibi görünüyor. Sanal hafıza mı yazdı bunu?
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

Akaan

Alıntı yapılan: Serk@n - 16 Aralık 2022, 08:53:39Bu tamam gibi görünüyor. Sanal hafıza mı yazdı bunu?
Evet bunu yapay zeka yazdı. Kurguyu doğru anlatınca inanması güç ama yazıyor valla 😁

Akaan

#include <16F887.h>
#device *=16
#fuses NOWDT, HS, NOPROTECT
#use delay(clock=20000000)
#include <lcd.c>

// define constants for R0, E0, and E1
#define R0 2
#define E0 3
#define E1 4

// define constants for LCD pins
#define LCD_RS 5
#define LCD_EN 6
#define LCD_D4 7
#define LCD_D5 8
#define LCD_D6 9
#define LCD_D7 10

void main()
{
   // initialize LCD
   lcd_init();

   // set pin modes for R0, E0, and E1
   set_tris_b(get_tris_b() | (1<<R0) | (1<<E0) | (1<<E1));

   while(1)
   {
      // wait for R0 to go high
      while (input(R0) == 0)
      {
         delay_ms(10);
      }

      // introduce a 6.66 millisecond delay
      delay_ms(6.66);

      // check if E0 is high
      if (input(E0) == 1)
      {
         // introduce another 6.66 millisecond delay
         delay_ms(6.66);

         // check if E1 is high
         if (input(E1) == 1)
         {
            // correct phase sequence
            printf(lcd_putc, "Correct phase sequence");
         }
         else
         {
            // incorrect phase sequence
            printf(lcd_putc, "Incorrect phase sequence");
         }
      }
      else
      {
         // incorrect phase sequence
         printf(lcd_putc, "Incorrect phase sequence");
      }

      // check if E0 and E1 are both low
      if (input(E0) == 0 && input(E1) == 0)
      {
         // phase is missing or disconnected
         printf(lcd_putc, "Phase missing or disconnected");
      }
   }
}


Son hali bu. Bir öncekini ccs c ile derlemiyor. Bana yarayan düzeltmelerini yaptığım muhtemelen çalışacak olan bu.

Akaan

Ben yapay zekanın yazdığına öncelikleri belirttim. #define #include satırlarını değiştirdim. LCD yazdırma işini derleyiciye uygun hale getirdim. yapay zeka temeli yazdı fonksiyonu sıraladı. Ama yinede çıktığı gibi kullanamıyorsunuz. Fakat ciddi yardımı oluyor

Serk@n

Hakikaten ilginç.

İnsan olmanın zorluklarından haberi yok tabi. İş yoğunluğu yok, kafa yorgunluğu yok,gönül yorgunluğu yok, metrobüs durağını kaçırmak yok... ;D Takır takır yazmış, helal olsun

İngilizce mi soruyorsunuz? İngilizceye daha mantıklı cevaplar veriyordur sanırım.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

Akaan

Alıntı yapılan: Serk@n - 16 Aralık 2022, 09:56:16Hakikaten ilginç.

İnsan olmanın zorluklarından haberi yok tabi. İş yoğunluğu yok, kafa yorgunluğu yok,gönül yorgunluğu yok, metrobüs durağını kaçırmak yok... ;D Takır takır yazmış, helal olsun

İngilizce mi soruyorsunuz? İngilizceye daha mantıklı cevaplar veriyordur sanırım.

Metrobüs durağı çok önemli detay 😁 Türkçe sordum. Bir kerede derlemiyor. Geniş fonksiyonları anlamıyor. O kadar zeki değil 😁 önce pinleri belirle dedim. Sonra işlemciyi belirtip uygun hale çevir dedim. Sonra kesme sürelerini yazdırdım. Sonra sıralaması ve ne işlev göreceğini anlattım. Bayağı tane tane adım adım gidiyorsunuz. Whatsap yazışması gibi. Sen söylüyorsun o önüne koyuyor bu mu? Diye.

Akaan

Bu arada çok zorlarsanız hata veriyor. Yine de programlama mantığı bilmeden yalap şalap anlatıp kullanılabilir birşey çıkmasını beklemek hata olur. İşlem önceliği bilmek kurguyu doğru ve sade anlatmak. Adım adım gidebilmek gerek. Aslında sizin unuttuğunuz yada mantığını yazılımsal olarak bildiğiniz ama daha önce kullanmadığımız tecrübeniz olmayan konularda büyük avantaj. Yoksa aman ben söyleyeyim o yazsın işi olmuyor. O bile öyle bir dünya yok diyor

Serk@n

Birkaç kere sohbet ettim ben de. Çelişkili cevaplar almıştım. Üzerine koyarak gitmek gerekiyor demek ki.
Bildiklerimize göre hareket edersek bilmediklerimizi de öğrenebiliriz.

Powered by EzPortal