การเข้าผลสมาบัติ#อารมณ์พระนิพพาน#จึงมุ่งสู่พุทธภูมิ#เธออย่าได้กล่าวคำหยา...


//Arduino   Atmega 168    Atmega   328P 3 phase induction motor Variable Speed Controller //Code

// Complier By  Arduino    Version   101    Version   106  Software 

//AUTO RE RUN //4K7   + MAX    VR   R 1K-10 K  A3  //ATmega 168   ATmega 328 P

#define UN        (400.0)    //napiecie znamionowe silnika

#define FN        (50.0)     //czestotliwosc znamionowa silnika

#define P         (UN/FN)    //wsp. okreslajacy proporcje napiecia do czestotliwoci znamionowej

#define T_PWM     (0.000255) //okres sygnalu PWM - ustawiony przez preskaler w licznikach

#define T_MAX     (4.0)      //okreslenie maksymalnego okresu napiecia wyjsciowego

#define T_MIN     (0.02)     //minimalny okres napiecia wyjsciowego

#define K_MAX     floor(T_MAX/T_PWM)  //liczba wartosci okresu dla T_MAX

#define K_MIN     ceil(T_MIN/T_PWM)   //liczba wartosci okresu dla T_MIN



volatile static unsigned int dlugosc_tab_sin;   //zmienna zawierajaca liczbe wartosci w pelnym

                                                //okresie napiecia wyjsciowego

static unsigned int i = 0;                      //zmienna pomocniacza

volatile static unsigned int licznik_glowny = 0;//zmienna wystepujaca w przerwaniu czyklicznie

                                                //^ co okres T_PWM zwiekszajaca swoja wartosc o 1

static unsigned int next_value_sin = 0; //zmienna ktora wartosc sin nalezy obliczyc

static double t_param=100;              //parametr okreslajacy okres napiecia wyjsciowego

static float t = T_PWM;                 //T_PWM

static float omega_t;                   //pulsacja napiecia wyjsciowego pomnozona przez T_PWM

static float t_out;                     //okres wyjsciowy napiecia

static float U_o_param;                 //parametr okreslajacy wielkosc napiecie wyjsciowego

                                        //^ obliczony na podstawie t_out i U_in

static unsigned int ocr0a, ocr0b, ocr1a;//zmienne pomocnicze do przechowywania obl. wypelnien

static unsigned int ocr1b, ocr2a, ocr2b;//^

static double sin_in;         //zmienna zawierajaca parametr funkcji sin

static double blad = 1;       //zmienna uzyta do zatrzymania generowania napiecia przy przeciazeniu 

static unsigned int analog=0; //zmienna zawierajaca zmierzona wartosc

static double U_in = 0;       //zmienna przechowuj¹ca pomiar napiecia ukladu posredniczacego

static double U_rms_max;      //maksymalna aktualnie mozliwa do generacji wartosc skuteczna napiecia

static bool a=0;              //zmienna logiczna do realizacji dwoch naprzemiennych pomiarow 

int main() 

{

  io_init();     //inicjalizacja wejsc i wyjsc

  timers_init(); //inicjalizacja licznikow PWM 

  adc_init();    //inicjalizacja przetwornika ADC

  while(1)                                //nieskonczona petla z programem glownym

  {

    if(i==185)                            //warunek okreslajacy wejscie do funkcji zmiany 

    {                                     //parametrow napiecia wysjciowego, wywolanie co okolo 100ms

      zmien_predkosc();                   //funkcja zmiany parametrow napiecia wyjsciowego

      i=0;

    }

    next_value_sin = licznik_glowny%dlugosc_tab_sin;  //kolejna warto?æ sinusa do obliczenia

    sin_in=omega_t*next_value_sin;



//obliczenie wartosci do rejestrow okreslajacych wypelnienie sygnalu wyjscioweg/

    ocr0a = round(blad*(U_o_param*(sin(sin_in)+1)*254/2)+1);//pin 6

    ocr0b = ocr0a - 1;

    ocr1a = round(blad*(U_o_param*(sin(sin_in-2.09)+1)*254/2)+1);//pin 9

    ocr1b = ocr1a - 1;

    ocr2a = round(blad*(U_o_param*(sin(sin_in+2.09)+1)*254/2)+1);//pin 11

    ocr2b = ocr2a - 1;

      

//uaktualnienie wartosci w rejestrach/

    cli();                              //zabronienie na obsloge przerwan na wypadek gdyby 

                                        //podczas uaktualniania wystapilo przerwanie

    OCR0A = ocr0a;    //pin 6

    OCR0B = ocr0b;    //pin 5

    OCR1AL = ocr1a;   //pin 9

    OCR1BL = ocr1b;   //pin 10

    OCR2A = ocr2a;    //pin 11

    OCR2B = ocr2b;    //pin 3

    sei();                              //zezwolenie na obsloge przerwan

    i++;

    }

}

void adc_init()


ADCSRA |= _BV(ADEN);//uruchomienie przetwornika

ADCSRA |= _BV(ADPS2);//ustawienie preskalera

ADCSRA |= _BV(ADPS1);//^

ADCSRA |= _BV(ADPS0);//^

ADMUX |= _BV(REFS0);// napiecie odniesienia ustawione jako napiecie zasilania

ADMUX |= ADMUX &= 0b11110000; //wybranie wejscia ADC0 do pomiaru

}

void timers_init()

{

cli();  // obsloga przerwan zabroniona

//timer0 init

TCCR0A |= _BV(COM0A1) | _BV(COM0B0) | _BV(COM0B1) | _BV(WGM00);               

TCCR0B |= _BV(CS01);              //preskaler 8

TIMSK0 |= _BV(TOIE0);             //flaga od wartosci 0 wlaczona

//timer1 init

TCCR1A |= _BV(COM1A1) | _BV(COM1B0) | _BV(COM1B1)  | _BV(WGM10);     

TCCR1B |= _BV(CS11);              //preskaler 8

//timer2 init

TCCR2A |= _BV(COM2A1) | _BV(COM2B0) | _BV(COM2B1)  | _BV(WGM20);     

TCCR2B |= _BV(CS21);              //preskaler 8

//zerowanie wartosci liczników

TCNT0 = 0;

TCNT1L = 0;

TCNT2 = 0;

/* licznik zlicza w góre do 255, nastepnie w dó³: /\/\/\

przy wartosci 255 jest przerwanie przy ktorym dokonuje sie

pomiarow napiec i pradow 

*/

sei();  //zezwolenie na obsloge przerwan

}

void io_init()

{

  pinMode(6, OUTPUT); //OC0A

  pinMode(5, OUTPUT); //OC0B

  pinMode(9, OUTPUT); //OC1A

  pinMode(10, OUTPUT);//OC1B

  pinMode(11, OUTPUT);//OC2A

  pinMode(3, OUTPUT); //OC2B

  pinMode(2, INPUT);

  pinMode(4, INPUT);

  pinMode(12, OUTPUT); 

}

ISR(TIMER0_OVF_vect)  //przerwanie przy wartosci 0 licznika0 

{

    analog = ADC;

      if(a) 

      {

        U_in = 0.0709*analog;

        ADMUX |= _BV(MUX0);           //wybranie wejscia ADC1 do pomiaru pradu                                           

      }

      else 

      {

        ADMUX |= ADMUX &= 0b11110000; //wybranie wejscia ADC0 do pomiaru napiecia

        if(analog>579)            

        {

          blad = 0;               //jezeli przeciazenie wylaczenie generacji napiecia

          digitalWrite(12, HIGH); //zapalenie diody 

        }

      }

      ADCSRA |= _BV(ADSC);//start odczytywania pomiaru

      a=a^1;              //bramka XOR neguje wartosc logiczna a               

 licznik_glowny++;

 if(licznik_glowny>=dlugosc_tab_sin) licznik_glowny = 0;


void zmien_predkosc()

{

  

  t_param = map(analogRead(3),0,1023,0,100);

  U_rms_max = U_in*0.62;  //wartosc 0.62 wyzanczona eksperymentalnie

  bool up;          //zmienna logiczna, informuje o nacisnietym przycisku zwieksz czestotliwosc

  bool down;        //zmienna logiczna, informuje o nacisnietym przycisku zmiejsz czestotliwosc

  up =  digitalRead(4);     //odczyt: czy nacisniety przycisk zwieksz czestotliwosc

  down = digitalRead(2);    //odczyt: czy nacisniety przycisk zmiejsz czestotliwosc

  if(up==1) t_param--;      //jezeli nacisniety przycisk zwieksz czestotliwosc to zmiejsz okres

  if(down==1) t_param++;    //jezeli nacisniety przycisk zmniejsz czestotliwosc to zwieksz okres

  if(t_param<0) t_param=0;    //zabezpieczenie przekroczenia wartosci skrajnych

  if(t_param>100) t_param=100;//^

  dlugosc_tab_sin = ceil((K_MAX-K_MIN)*t_param/500+K_MIN);//ilosc wartosci wypelnien w jednym okresie

  t_out = T_PWM*dlugosc_tab_sin;                          //obliczenie okresu napiecia wyjsciowego

  omega_t = t*2*PI/t_out;                                 //obliczenie pulsacji napiecia wyjsciowego

  U_o_param = (P/t_out)/U_rms_max;  //obliczenie parametru okreslajacego wielkosc napiecia wyjsciowego

  if(t_out>1) U_o_param = 0.5*(18.5/U_rms_max); //napiêcie na wyjsciu przy niskiej czestotliwosci 10V

  if(U_o_param>1) U_o_param=1;  

  //zabezpieczenie przekroczenia wartosci skrajnych

    blad = 1;               //jezeli przeciazenie wylaczenie generacji napiecia

          digitalWrite(12, LOW); //zapalenie diody 

}
}

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ความดับทุกข์#อนิมิตตวิโมกข์#อัปปณิหิตวิโมกข์#สุญญตวิโมกข์#เธออย่าได้กล่า...เข้าสู่ระบบหรือลงทะเบียน หน้าแรก เว็บบอร์ด > พุทธศาสนา > พระไตรปิฎก > เรื่องเด่นคนกิเลสหนากับการบรรลุธรรม ในห้อง 'พระไตรปิฎก' ตั้งกระทู้โดย rachotp, 4 พฤศจิกายน 2021. แท็ก: เพิ่มแท็ก rachotp rachotp เป็นที่รู้จักกันดี สมาชิก Premium ผู้สนับสนุนเว็บพลังจิต วันที่สมัครสมาชิก:9 ตุลาคม 2020 โพสต์:1,214 กระทู้เรื่องเด่น:251 ค่าพลัง:+23,278 A.PNG การบรรลุธรรมของคนที่มีกิเลสหนา เรื่องน่าคิดจากพระไตรปิฎก หลายท่านอาจจะสงสัยว่า “คนที่มีกิเลสหนา บรรลุธรรมไม่ได้” และเชื่อกันมาแบบนี้ แต่พระพุทธเจ้าตรัสถึงเรื่องนี้ไว้ในพระสูตรที่มีชื่อว่า วิตถารสูตร ถึงการบรรลุธรรมของคนที่มีกิเลสหนา ไว้ว่า… บุคคลบางคนในโลกนี้ ตามปกติเป็นผู้มีความกำหนัดยินดีในกาม (ราคะ) ย่อมได้เสวยทุกข์โทมนัสอันเกิดจากความกำหนัดยินดีในกามตลอด เป็นผู้มีความโกรธ (โทสะ) รุนแรง ย่อมได้เสวยทุกข์โทมนัสที่เกิดจากความโกรธตลอด เป็นผู้ที่มีความหลง (โมหะ) รุนแรง ย่อมได้เสวยทุกข์โทมนัสที่เกิดจากความหลงตลอด G.PNG แต่อินทรีย์ 5 ประการ ได้แก่ ศรัทธา วิริยะ สติ สมาธิ และปัญญา เหล่านี้มีความแรงกล้า เขาย่อมบรรลุธรรมอย่างฉับพลัน แต่หากคนผู้นั้นมีกิเลสเป็นราคะ โทสะ และโมหะเบาบาง ไม่ได้มีความทุกข์โทมนัสจากราคะ โทสะ และโมหะ แต่อินทรีย์ทั้ง 5 ประการนี้อ่อน เขาย่อมได้บรรลุมรรคผลล่าช้า การบรรลุธรรมจึงขึ้นอยู่กับอินทรีย์ 5 ประการ F.PNG ระดับของการบรรลุธรรม การบรรลุธรรมของคนที่มีกิเลสหนาถึงจะขึ้นอยู่กับอินทรีย์ 5 แต่ก็มีความช้าและความเร็วแตกต่างกันไป พระพุทธเจ้าทรงจัดระดับไว้ 4 ระดับด้วยกันคือ 1) ทุกขาปฏิปทา ทันธาภิญญา หมายถึง ผู้ที่มีกิเลสหนา แต่มีอินทรีย์ 5 ประการบาง จึงบรรลุธรรมได้ช้า 2) ทุกขาปฏิปทา ขิปปาภิญญา หมายถึง ผู้ที่มีกิเลสหนา แต่มีอินทรีย์ 5 ประการแรงกล้า จึงบรรลุธรรมได้ไว 3) สุขาปฏิปทา ทันธาภิญญา หมายถึง ผู้ที่ไม่มีกิเลส แต่มีอินทรีย์ 5 ประการบาง จึงบรรลุธรรมช้า 4) สุขาปฏิปทา ขิปปาภิญญา หมายถึง ผู้ที่ไม่มีกิเลส และมีอินทรีย์ 5 ประการแรงกล้า จึงบรรลุธรรมได้ไว H.png ทำไมการบรรลุธรรมจึงเกี่ยวข้องกับอินทรีย์ 5 ประการ? อินทรีย์ 5 ได้แก่ ศรัทธา วิริยะ สติ สมาธิ และปัญญา เป็นองค์ธรรมที่ช่วยให้โลภะ โทสะ และโมหะ ลดลง เมื่อมีความเชื่อมั่น (ศรัทธา) ต่อคำสอนของพระพุทธเจ้า จะเกิดความเพียร (วิริยะ) การระลึกรู้ได้ก็จะตามมา (สติ) เมื่อเกิดการระลึกได้สมาธิก็จะตามมา เมื่อมีสมาธิผลที่ได้คือปัญญา ผู้บรรลุอรหันต์ล้วนผ่านองค์ธรรม 5 ประการนี้ D.PNG ตัวอย่างเช่น เจ้าหญิงอภิรูปนันทา เป็นสตรีชนชั้นสูงที่มีความงามเป็นเลิศ จึงมีอุปนิสัยรักสวยรักงาม พอผนวชเป็นภิกษุณี ก็ยังไม่ทรงละอุปนิสัยรักสวยรักงามอยู่ดี พระพุทธเจ้าทรงต้องการโปรดเจ้าหญิงอภิรูปนันทาให้ทราบถึงโทษของการรักสวยรักงาม พระพุทธเจ้าทรงเนรมิตสตรีนางหนึ่งขึ้นมาให้มีความงามประดุจนางฟ้า เจ้าหญิงทรงหลงใหลแล้วชมว่า สตรีนางนี้ช่างมีความงดงามมากกว่าสตรีใดๆที่้เคยพบเห็นมา ไม่นานสตรีนางนี้ก็ค่อยๆ แก่ลง แล้วตายกลายสภาพเป็นศพ และเริ่มเน่าส่งกลิ่นเหม็น แล้วกลายเป็นโครงกระดูกในที่สุด E.PNG เมื่อเจ้าหญิงอภิรูปนันทาทอดพระเนตรดังนั้นแล้วทรงเชื่อ (ศรัทธา) ในคำสอนของพระพุทธเจ้าแล้วว่าการยึดติดในความงามเป็นสิ่งที่เที่ยง แท้ที่จริงแล้วมันเป็นสิ่งที่ไม่เที่ยง เมื่อเจ้าหญิงทรงพิจารณาร่างของสตรีนางนั้นด้วยความตั้งใจ (วิริยะ) เมื่อทรงสังเกตพินิจพิจารณาจนถึงตอนที่สตรีนางนั้นสิ้นลม การระลึกรู้ (สติ) ถึงคำสอนของพระพุทธเจ้าก็บังเกิดขึ้นในบัดนั้นทันที พอทรงมีสติพิจารณาใคร่ครวญอย่างถี่ถ้วนดีแล้ว จึงบังเกิดความสงบ (สมาธิ) ขึ้น เจ้าหญิงอภิรูปนันทาเกิดความเข้าพระทัยว่า สิ่งที่พระนางหลงใหล (โลภะ) ในความงามนั้น เป็นความเขลาเบาปัญญา ทำให้พระนางตรึงอยู่ในกระแสแห่งการเวียนว่ายตายเกิดต่อไป B.PNG พระนางทรงข้ามฝั่งแห่งน่านน้ำอวิชชามาถึงฝั่งแห่งวิชชา อันเกิดจากการพิจารณาร่างของสตรีซึ่งถูกเนรมิต จนทำให้พระนางบรรลุธรรม เจ้าหญิงอภิรูปนันทา เป็นตัวอย่างที่ทำให้เห็นว่าคนที่มีกิเลสหนา ที่บรรลุธรรมได้นั้นมีอยู่จริง แต่อินทรีย์ 5 ประการของพระนางถึงพร้อม พระพุทธเจ้าทรงเห็นจึงได้มาโปรดพระนางด้วยวิธีนี้จนพระนางบรรลุธรรม C.PNG Credit: ขอขอบพระคุณที่มาจาก วิตถารสูตร ว่าด้วยปฏิปทาโดยพิสดาร พระไตรปิฎกเล่มที่ ๒๑ พระสุตตันตปิฎกเล่มที่ ๑๓ [ฉบับมหาจุฬาฯ] อังคุตตรนิกาย จตุกกนิบาต "นะโม วิมุตตานัง นะโม วิมุตติยา" "ชินะปัญชะระ ปะริตตังมัง รักขะตุสัพพะทา" "มะอะอุ นะโม วิมุตตานัง นะโมวิมุตติยา ราหุ สุริยัง จันทัง ปะมุจจะสุ" "พุท ธะ สัง วิ หะ ระ ตัง ปุญ ญัง วะ ทา มิ"