มีธรรมะทุกอย่างดีเอง ความจริงนี่ควรจะทำอย่างนี้ ในเมื่อบริกรรมภาวนาไปถ้ามันเกิดง่วงๆเหมือนอยากจะนอนหลับ ก็ปล่อยให้มันหลับไปเลย มันจะหลับจริงๆเหมือนอย่างนอนหลับก็ให้มันหลับลงไป ในเมื่อมันผ่านความหลับอย่างธรรมดาหลายๆครั้งเข้า เพราะอาศัยการบริกรรมภาวนา เมื่อหลับลงไปแล้วสมาธิมันจะเกิดเอง ไม่ต้องกลัว ปล่อยให้มันหลับลงไป ทีนี้ในเมื่อหลับลงไปแล้ว ถ้าหากว่าจิตของผู้หลับนั้น แม้แต่จะหลับในเวลานั่งก็ตาม หลับเวลานอนก็ตาม ถ้าหลับลงไปแล้ว จิตมันมีอาการเคลิ้มๆ แล้วก็สว่าง ส่งกระแสออกไปข้างนอก มันจะเกิดนิมิตรต่างๆขึ้นมา นิมิตรอันนั้นคือความฝัน ทีนี้อย่างพระอริยะเมื่อท่านนอนหลับแล้ว ท่านก็ยังฝันเหมือนกัน แต่ความฝันของพระอริยะนั้นคือ นิมิตร แล้วท่านจะไม่ได้ฝันแบบที่เรียกว่าหาจุดหมายปลายทางไม่ได้ เหมือนอย่างคนสามัญธรรมดา อะอืมๆ ท่านฝันเป็นเรื่องเป็นราวเกี่ยวกับเหตุการณ์ที่ท่านรู้ท่านเห็น หรือบางทีอาจจะ อะอืมๆ เกิดนิมิตรขึ้นมา ว่า พรุ่งนี้จะมีเหตุการณ์อะไรเกิดขึ้นเป็นต้น อันนี้เรียกว่า นิมิตร

//Arduino Atmega 168 Atmega 328P 3 phase induction motor Variable Speed Controller //Code // Complier By Arduino Version 101 Version 106 Software //ÃØè¹¹Õéà»ç¹áºº AUTO RE RUN â¤ê´¹ÕéãªéÇÍÅÅØèÁ 5KB µÑÇà´ÕÂÇ·Ó˹éÒ·Õè »Ô´ -»Ô´ »ÃѺÃͺ ãËéãªé R //4K7 µèÍ ä¿+5Vdc áÅéǵèÍà¢éÒ ¢Ò¢éÒ§´éÒ¹ + 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 }

ความคิดเห็น

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

การสำเร็จมรรคผล#ธรรมทั้งหลายมีใจเป็นหัวหน้ามีใจเป็นใหญ่สําเร็จด้วยใจ สังสารวัฏนี้น่ากลัว เพราะมันปิดบังตัวเองได้ กระทู้คำถาม ศาสนาพุทธ ความจริงเกี่ยวกับความจำที่อาจไม่สนุกนัก และนับเป็นเรื่องน่ากลัวของสังสารวัฏก็คือ ธรรมชาติเองก็เล่นเกม "ลบความทรงจำ" ปล่อยให้เราทำดีทำชั่ว และรับผลดีผลชั่วอย่างไม่รู้อีโหน่อีเหน่อยู่ทุกเมื่อเชื่อวันแบบนี้มานับชาติไม่ถ้วนอยู่แล้ว ไม่มีใครรู้ ไม่มีใครจำได้ ว่าตัวเองเกิดมาเป็นอย่างนี้ได้อย่างไร ทำไมถึงเป็นอย่างที่เป็น และทำไมต้องเจอกับอะไรที่เจอ ความทรงจำในอดีตชาติของเราถูกลบเลือนไปสิ้นในช่วงแห่งภวังค์ ๙ เดือนในท้องแม่ ถ้าเราจำได้ว่าเคยทำอะไรไว้ เคยถูกลงโทษไว้สาหัสสากรรจ์จนทุกข์ทรมานเพียงไหน เราคงไม่กล้าอีก... ที่จะทุจริตฉ้อโกง ทำร้ายหรือทำลายชีวิตใคร ฯลฯ อย่างน้อยย่อมมีความเข็ดขยาดอย่างแรงกล้า แม้สิ่งยั่วยุตรงหน้าจะล่อใจเพียงใดก็ตาม เหมือนเด็กที่รู้แล้วว่าการเอานิ้วแหย่ปลั๊กไฟมันเจ็บปวดขนาดไหน แล้วเข็ดที่จะทำอีก แต่เพราะเราจำไม่ได้ และเราต่างก็ยังดำเนินชีวิตไปเรื่อย ๆ ด้วยความไม่รู้ และไม่สนใจกระทั่งที่จะศึกษาเรียนรู้ เราก็ได้แต่เสี่ยงผิดเสี่ยงถูก ทำอะไรกันไปตามสัญชาตญาณเพื่อสนองกิเลสเฉพาะหน้าเป็นคราว ๆ ไปเท่านั้น หลวงพ่อปราโมทย์ท่านเคยเปรยขึ้นมาครั้งหนึ่งนะว่า "ถ้าเราความจำดีนะ... จะหนาว..." ท่านพูดขึ้นท่ามกลางความเงียบ แล้วก็ทิ้งท้ายไว้ด้วยความเงียบครู่หนึ่งอย่างนั้น จนทำให้รู้สึกว่าคำว่า "จะหนาว" คำนั้น น่ากลัวและเย็นยะเยือกเกินจินตนาการยิ่งนัก "ถ้ามองย้อนลงไป... มองย้อนลงไป...ได้นะ จะหนาวจริง ๆ สังสารวัฏนี้น่ากลัว เพราะมันปิดบังตัวเองได้" "นรกผ่านมาแล้วทุกคนนะ เดรัจฉานเป็นมาแล้วนะ เป็นกันมาหมดแล้ว..." หลวงพ่อท่านต่อท้ายไว้เสียน่าหนาวสันหลัง เคยคิดไหมคะว่า เราเคยทำอะไรไว้บ้าง แล้วที่คิด ๆ ทำ ๆ อยู่ทุกวันนี้ จะซัดเราไปสู่อัตภาพแบบไหนหลังความตายได้อีก เดรัจฉาน หรือนรกนั้น ไม่ใช่เรื่องเกินวิสัยเลย เราเดิน ๆ กันอยู่แค่ปากเหวนี่เอง ถ้าเป็นมนุษย์กิเลสหนาอย่างเรา ๆ ที่ไม่มีความสามารถระลึกถึงอดีตชาติเช่นนั้นได้ ก็คงรับผลไปอย่างงง ๆ โดยที่ไม่รู้เลยว่า ตัวเองนั่นแหละที่สร้างเหตุแห่งความเป็นเช่นนี้ไว้ "ความจำ" มีศัพท์เทคนิคในทางพุทธศาสนาอยู่คำหนึ่ง คือคำว่า "สัญญา" ซึ่งไม่ได้หมายถึงคำมั่นสัญญานะ แต่มีความหมายถึง ความจำได้หมายรู้ พระพุทธเจ้าท่านพูดถึง สัญญา หรือความจำนี้ ว่าไม่เที่ยง ไม่มีอะไรเป็นประกันได้เลยว่า เกิดใหม่เราจะเป็นอย่างไร จะคิดอย่างไร ไม่ว่าชาตินี้เราจะเป็นคนแสนดี หรือรู้จักจดจำข้อธรรมได้มากมายแค่ไหนก็ตาม พอตายแล้วเกิดใหม่ เราก็จำไม่ได้อยู่ดี และถ้าเราเป็นคนเลวในอนาคต ก็ต้องรับกรรมด้วยการไปเกิดในอบาย

การบรรลุมรรคผลนิพพาน#ธรรมไม่เนิ่นช้า#วิมุตติความหลุดพ้น#แนวทางบรรลุธรรม​...