久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2769|回復: 1
收起左側

Arduino ATtiny85 Delta AC三相檢查器電路原理圖

[復制鏈接]
ID:928738 發表于 2021-11-24 14:03 | 顯示全部樓層 |閱讀模式
對于那些在花園中擁有風力渦輪機的人來說,最糟糕的事情之一就是看到螺旋槳平穩地轉彎并突然旋轉很短的時間然后再次轉彎,而顯然沒有任何理由停下來。發生了什么事 ?

可能是 3 線電纜短路。...如何查看?當然,有了電壓表,您可以進行驗證...但是大多數情況下,您只會測量出一切都正確。當然,短路非常短暫,非常短。
這是一個解決方案:安裝后,如果一切正常,將關閉 2 個紅色 LED。但是,一旦在 3 根線(或 3 根線)中的 2 根線之間未檢測到電壓,一條指示燈就會閃爍,這表明哪根線有問題:
紅色 led 1 如果在 volt1 和 volt3 之間存在問題,紅色 led 2 則在 volt2和 volt3 之間存在問題,兩個紅色 led 都表明 volt2 和 volt3 之間存在問題,或者沒有風....
R 設置為限制電流:4.7K 將在 47V 電壓下產生 10mA 電流,而在 94V電壓下產生 20mA 電流。
D 是一個整流二極管,例如 1N4001 或您想要的任何二極管。LED(綠色 LED)用作齊納二極管,以將輸入電壓限制為 Arduino 的模擬輸入。我使用 90 年綠色 LED,其工作電壓約為 2V。您可以使用任何希望的 LED,如果與 ATtiny85 一起使用,其工作電壓應低于2.5V。
該代碼執行什么操作?它連續讀取 volt1 和 volt2 電壓 100 個周期。不要忘記它是交流電壓,
因此需要一點時間來確保獲得多個電壓周期。如果在此時間之后該值太低,則它將停止測量,并且右紅色指示燈閃爍,直到重置。同時在電壓 1 和電壓 2 之間進行比較,如果測量值太近,則兩個紅色 LED 都閃爍。
該代碼是針對 Arduino 和 ATtiny85 提出的。
ATtiny85 的優勢非常小,因此可以構建一個尺寸很小的設備,該設備可以使用 CR2032 電池在 3V 的電壓下工作。由于代碼中的 sleeping方法可以確保單元能夠運行多年!
ATtiny85三相檢查器圖.png 三相檢查器的Arduino圖.png
ATtiny85三相校驗碼.c
  1. /* 3 phases checker in triangle configuration
  2. *  
  3. *  For ATiny85
  4. *  
  5. *  
  6.                         +-------+
  7.         RESET  <= PB5  1|*      |8  VCC
  8.    input1 <= A3 = PB3  2|       |7  PB2 => LED1
  9.    input2 <= A2 = PB4  3|       |6  PB1 => LED2
  10.         input3 <= GND  4|       |5  PB0 => startup LED
  11.                         +-------+
  12. connection :

  13.    RESET in PB5 = pin1  => push-button to GND // 10K to Vcc
  14.    volt1 in PB3 = pin2  => 1st wire
  15.    volt2 in PB4 = pin3  => 2nd wire
  16.             GND = pin4  => 3rd wire
  17.     LED1 in PB2 = pin7  => 1st wire
  18.     LED2 in PB1 = pin6  => 2nd wire
  19. startup LED PB0 = pin5  => flash after each reset push

  20. */

  21. #include <avr/sleep.h>
  22. #include <EEPROM.h>

  23. #ifndef cbi
  24. #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
  25. #endif
  26. #ifndef sbi
  27. #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
  28. #endif

  29. bool eveil = true;                      // WD flag
  30. bool v1cut = false, v2cut = false;      

  31. void setup() {

  32.   pinMode(0, INPUT);  
  33.   pinMode(3, INPUT);
  34.   pinMode(4, INPUT);
  35.   pinMode(2, INPUT);
  36.   pinMode(1, INPUT);

  37. // the watchdog sets the interval delay :
  38. // 0=16ms, 1=32ms,2=64ms, 3=128ms, 4=250ms, 5=500ms, 6=1s, 7=2s, 8=4s, 9=8s
  39.   setup_watchdog(6);
  40.   set_sleep_mode(SLEEP_MODE_PWR_DOWN);  // sleep mode

  41.   for( byte i=0; i<5; i++ ) {
  42.     flasher(0);
  43.     delay(100);
  44.   }
  45. }

  46. void flasher(byte p) {
  47.   pinMode(p, OUTPUT);
  48.   digitalWrite(p, HIGH);
  49.   delay(5);
  50.   digitalWrite(p, LOW);
  51.   pinMode(p, INPUT);
  52. }

  53. void loop() {

  54.   unsigned long volt1, volt2;
  55.   byte nbre_cc;
  56.   byte a=0;
  57.   
  58.   while( v1cut == false && v2cut == false ) {
  59.     volt1=0; volt2=0;
  60.     nbre_cc=0;
  61.     a++;
  62.     if( a%10 == 0 ) flasher(0);
  63.     for( byte i=0; i<100; i++ ) {
  64.       unsigned int v1 = analogRead(A3);
  65.       delayMicroseconds(10);
  66.       unsigned int v2 = analogRead(A2);
  67.       delayMicroseconds(10);
  68.       volt1 += v1; volt2 += v2;
  69.       if( v1-v2 < 20 || v2-v1 < 20 ) nbre_cc++;           
  70.       delay(1);
  71.     }
  72.    
  73.     if( nbre_cc > 50 ) { v1cut = true; v2cut = true; }
  74.     if( volt1 < 1000 ) v1cut = true;
  75.     if( volt2 < 1000 ) v2cut = true;
  76.   }   // end of while
  77.   
  78.   if( eveil == true ) {
  79.     eveil = false;
  80.     if( v1cut == true ) flasher(2);
  81.     if( v2cut == true ) flasher(1);
  82.     system_sleep();           // go to sleep for 8 secondes
  83.   }
  84. }   // end of loop

  85. // set system into the sleep state - system wakes up when wtchdog is timed out
  86. void system_sleep() {
  87.   cbi(ADCSRA,ADEN);           // Switch ADC OFF, bacause ADC uses ~320uA
  88.   EEPROM.write(0, v1cut);
  89.   EEPROM.write(1, v2cut);
  90.   sleep_enable();
  91.   sleep_mode();               // System actually sleeps here
  92.   sleep_disable();            // System continues execution here when watchdog timed out
  93.   sbi(ADCSRA,ADEN);           // Switch Analog to Digital converter ON
  94.   v1cut = EEPROM.read(0);
  95.   v2cut = EEPROM.read(1);
  96. }

  97. void setup_watchdog( byte tempo ) {
  98.   byte val;
  99.   val = tempo & 7;
  100.   if (tempo > 7) val |= (1<<5);
  101.   val |= (1<<WDCE);
  102.   MCUSR &= ~(1<<WDRF);                  // start timed sequence
  103.   WDTCR |= (1<<WDCE) | (1<<WDE);        // set new watchdog timeout value
  104.   WDTCR = val;
  105.   WDTCR |= _BV(WDIE);
  106. }
  107.   
  108. // Watchdog Interrupt Service / is executed when watchdog timed out
  109. ISR(WDT_vect) { eveil = true; }        // set global flag  
復制代碼

三相檢查器的Arduino Uno代碼.c
  1. /* 3 phases checker in triangle configuration
  2. *  
  3. *  For Arduino Uno
  4. *  
  5. *  


  6.    RESET  => Arduino Uno push-button
  7.    volt1 = A3  => 1st wire
  8.    volt2 = A2  => 2nd wire
  9.    volt3 = GND => 3rd wire
  10.     LED1 = 8   => 1st wire LED
  11.     LED2 = 9   => 2nd wire LED

  12. */

  13. bool v1cut = false, v2cut = false;      

  14. void setup() {
  15.   pinMode(8, OUTPUT);
  16.   pinMode(9, OUTPUT);
  17. }

  18. void flasher(byte p) {
  19.   digitalWrite(p, HIGH);
  20.   delay(5);
  21.   digitalWrite(p, LOW);
  22. }

  23. void loop() {
  24.   unsigned long volt1, volt2;
  25.   byte nbre_cc;
  26.   byte a=0;
  27.   
  28.   while( v1cut == false && v2cut == false ) {
  29.     volt1=0; volt2=0;
  30.     nbre_cc=0;
  31.     a++;
  32.     if( a%10 == 0 ) flasher(0);
  33.     for( byte i=0; i<100; i++ ) {
  34.       unsigned int v1 = analogRead(A3);
  35.       delayMicroseconds(10);
  36.       unsigned int v2 = analogRead(A2);
  37.       delayMicroseconds(10);
  38.       volt1 += v1; volt2 += v2;
  39.       if( v1-v2 < 20 || v2-v1 < 20 ) nbre_cc++;
  40.       delay(1);
  41.     }
  42.    
  43.     if( nbre_cc > 50 ) { v1cut = true; v2cut = true; }
  44.     if( volt1 < 1000 ) v1cut = true;
  45.     if( volt2 < 1000 ) v2cut = true;
  46.   }   // end of while

  47.     if( v1cut == true ) flasher(2);
  48.     if( v2cut == true ) flasher(1);
  49. }   // end of loop
復制代碼



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:228452 發表于 2022-4-1 22:16 | 顯示全部樓層
Hello
This is Schneider schematic input 140-580VAC from factory made module
I hope this can be of use

Schneider Schematic.pdf

1.28 MB, 下載次數: 9, 下載積分: 黑幣 -5

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久国产一区二区三区 | 久久久精彩视频 | 色爱综合 | 岛国二区| 国产精品中文字幕一区二区三区 | 国产成人久久精品一区二区三区 | 国产精品久久久久久久久久免费看 | 欧美一区二区免费 | 久久综合伊人一区二区三 | 午夜亚洲| 久久久毛片 | 精品久久久av | 国产精品永久免费视频 | 一区在线观看 | 精品国产18久久久久久二百 | 97视频在线观看网站 | 成人深夜福利 | 福利二区 | 蜜桃视频在线观看免费视频网站www | 999久久久久久久久6666 | 午夜激情影院 | 精品国产鲁一鲁一区二区张丽 | 在线成人| 精品久久久久久亚洲精品 | 免费观看的av毛片的网站 | 在线观看中文字幕亚洲 | 亚洲国产成人在线视频 | 亚洲日日夜夜 | 亚洲一区在线日韩在线深爱 | 欧美性影院 | 一级一级毛片免费看 | 日操操 | 日本综合在线观看 | 中文字幕视频在线免费 | 毛片大全| 国产免费一区二区 | 妞干网av | 精品国产欧美日韩不卡在线观看 | 中文字幕日韩一区 | 国产美女在线观看 | 99精品久久久国产一区二区三 |