Thông báo

Collapse
No announcement yet.

Bài toán hẹn giờ, chỉnh thời gian chuông kêu và số lần lặp chuông kêu

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Bài toán hẹn giờ, chỉnh thời gian chuông kêu và số lần lặp chuông kêu

    Chào các bác, như tiêu đề, nhờ các bác có ý tưởng cho việc lập trình hẹn giờ với thời gian chuông kêu và số lần chuông kêu cài đặt được,

    Hệ thống dùng ds1307, kiểu như các bác muốn set đến 5h thì nó báo thức, nó kêu 5 hồi chuông mỗi hồi kéo dài 5s chẳng hạn.

    Mong các bác góp ý cho em ạ, e đang tính dùng deley và đưa vào vòng for nhưng vẫn ko được

  • #2
    cao thủ đâu hết rùi ạ

    Comment


    • #3
      Bài toán này có thể dùng 1 DS1307 + 1AVR + 4 LED 7 đoạn + 1loa + code chương trình phù hợp là thực hiện được, tớ đã làm 1 cái đồng hồ báo thức tương tự như thế này.
      Chuyên thiết kế mạch điều khiển, lắp đặt cơ khí, ĐT: 0913059995.

      Comment


      • #4
        Nguyên văn bởi ngocchuong90 Xem bài viết
        Chào các bác, như tiêu đề, nhờ các bác có ý tưởng cho việc lập trình hẹn giờ với thời gian chuông kêu và số lần chuông kêu cài đặt được,

        Hệ thống dùng ds1307, kiểu như các bác muốn set đến 5h thì nó báo thức, nó kêu 5 hồi chuông mỗi hồi kéo dài 5s chẳng hạn.

        Mong các bác góp ý cho em ạ, e đang tính dùng deley và đưa vào vòng for nhưng vẫn ko được
        for không được thì có thể dùng while(1) mà bạn.

        while(1)
        {
        chuong_keu=check_alarm();
        if(chuong_keu) bat_chuong(); else tat_chuong();
        }
        Dành cho những ai thích nghịch điện: ~~>

        Comment


        • #5
          Nguyên văn bởi ngocchuong90 Xem bài viết
          Chào các bác, như tiêu đề, nhờ các bác có ý tưởng cho việc lập trình hẹn giờ với thời gian chuông kêu và số lần chuông kêu cài đặt được,

          Hệ thống dùng ds1307, kiểu như các bác muốn set đến 5h thì nó báo thức, nó kêu 5 hồi chuông mỗi hồi kéo dài 5s chẳng hạn.

          Mong các bác góp ý cho em ạ, e đang tính dùng deley và đưa vào vòng for nhưng vẫn ko được
          bạn làm thế này nhé:

          nếu h = 5 và s = 0 thì bật chuông. //5h00
          nếu h = 5 và s = 5 thì tắt chuông. //5h05

          nếu h = 5 và s = 6 thì bật chuông. //5h06
          nếu h = 5 và s = 11 thì tắt chuông. //5h11

          ..........
          (^_^) hoangnv.3i@gmail.com

          Comment


          • #6
            hix, ý em là giờ người dùng nhập vào 3 biến, biến giờ là h, biến phút là m, thời gian chuông kêu là t và lặp lại n lần.

            Chứ còn làm như các bác thì nó chỉ kêu trong 1 phút khi h=giờ và m=phút thôi giờ làm sao để nó kêu t(s) và lặp lại n lần khi đến giờ báo thức ý

            Comment


            • #7
              Nguyên văn bởi nhanmd Xem bài viết
              Bài toán này có thể dùng 1 DS1307 + 1AVR + 4 LED 7 đoạn + 1loa + code chương trình phù hợp là thực hiện được, tớ đã làm 1 cái đồng hồ báo thức tương tự như thế này.
              bác có thể nói cho em tí thuật toán thực hiện kọ ạ ?

              Comment


              • #8
                Nguyên văn bởi ngocchuong90 Xem bài viết
                bác có thể nói cho em tí thuật toán thực hiện kọ ạ ?
                DS1307 làm đồng hồ thời gian thực, 4 led 7 đoạn hiển thị giờ phút, AVR xử lý đọc dữ liệu trong ds1307 và hiển thị ra led 7 đoạn, loa phát ra chuông báo. Về chương trình dùng c (codevisionavr). Trong ct gồm viết ct con đọc và ghi dl giữ avr và ds1307 ( bằng giao tiếp i2c có thư viện sẵn trong codevisionavr), trong ct nên chia ra 1 ct chính và các ct phụ như ct tạo chuông báo, ct đặt giờ hẹn, ct đặt giờ cho ds1307:
                ct chính làm các nhiệm vụ:
                - cập nhật tg thực,
                - cập nhận các phím bấm hoặc công tắc điều khiển
                - hiển thị tg trên led 7 đoạn
                - so sánh tg hẹn giờ và tg thực, nếu bằng nhau thì nhẩy đến ct chuông báo
                ct chuông báo:
                - cập nhật các phím bấm hoặc công tắc đk
                - tạo ra tiếng chuông kêu: kiểu chuông, số lần kêu...
                - chuông báo xong lại nhẩy về ct chính
                ct đặt giờ hẹn:
                - cập nhật các phím bấm hoặc công tắc đk
                - hiện tg hẹn lên led 7 đoạn, tg hẹn này điều chỉnh bằng các phím bấm
                - lưu tg hẹn vào 1 biến và trở về ct chính
                ct đặt giờ cho ds1307:
                - cài tg cho ds1307 chạy đúng tg thực
                - cập nhật các phím bấm hoặc công tắc đk
                - hiện tg thực lên led 7 đoạn, tg này điều chỉnh bằng các phím bấm
                - ghi tg này vào các thanh ghi của ds1307. sau đó trở về ct chính
                mỗi ct là 1 vòng lặp while(1) và gắn với 1 cái nhãn và có thể nhẩy qua nhẩy lại các ct bằng các nút đk
                Thực hiện đc như trên thì bạn sẽ có 1 chiếc đồng hồ hẹn giờ như ý.
                Last edited by nhanmd; 31-01-2013, 12:36.
                Chuyên thiết kế mạch điều khiển, lắp đặt cơ khí, ĐT: 0913059995.

                Comment


                • #9
                  Nguyên văn bởi nhanmd Xem bài viết
                  DS1307 làm đồng hồ thời gian thực, 4 led 7 đoạn hiển thị giờ phút, AVR xử lý đọc dữ liệu trong ds1307 và hiển thị ra led 7 đoạn, loa phát ra chuông báo. Về chương trình dùng c (codevisionavr). Trong ct gồm viết ct con đọc và ghi dl giữ avr và ds1307 ( bằng giao tiếp i2c có thư viện sẵn trong codevisionavr), trong ct nên chia ra 1 ct chính và các ct phụ như ct tạo chuông báo, ct đặt giờ hẹn, ct đặt giờ cho ds1307:
                  ct chính làm các nhiệm vụ:
                  - cập nhật tg thực,
                  - cập nhận các phím bấm hoặc công tắc điều khiển
                  - hiển thị tg trên led 7 đoạn
                  - so sánh tg hẹn giờ và tg thực, nếu bằng nhau thì nhẩy đến ct chuông báo
                  ct chuông báo:
                  - cập nhật các phím bấm hoặc công tắc đk
                  - tạo ra tiếng chuông kêu: kiểu chuông, số lần kêu...
                  - chuông báo xong lại nhẩy về ct chính
                  ct đặt giờ hẹn:
                  - cập nhật các phím bấm hoặc công tắc đk
                  - hiện tg hẹn lên led 7 đoạn, tg hẹn này điều chỉnh bằng các phím bấm
                  - lưu tg hẹn vào 1 biến và trở về ct chính
                  ct đặt giờ cho ds1307:
                  - cài tg cho ds1307 chạy đúng tg thực
                  - cập nhật các phím bấm hoặc công tắc đk
                  - hiện tg thực lên led 7 đoạn, tg này điều chỉnh bằng các phím bấm
                  - ghi tg này vào các thanh ghi của ds1307. sau đó trở về ct chính
                  mỗi ct gắn với 1 cái nhãn và có thể nhẩy qua nhẩy lại các ct bằng các nút đk
                  Thực hiện đc như trên thì bạn sẽ có 1 chiếc đồng hồ hẹn giờ như ý.
                  phần bác nói thì em đã hoàn thành rồi, giờ chỉ có mỗi chỗ là làm sao để nó kêu theo cài đặt thôi, em dùng chuông điện 220v chỉ cần đóng rơ le là kêu, giờ mình phải đổ chuông theo cài đặt người dùng ý, kếu trong t giây và số lần kêu là n lần, :

                  Comment


                  • #10
                    Nguyên văn bởi ngocchuong90 Xem bài viết
                    phần bác nói thì em đã hoàn thành rồi, giờ chỉ có mỗi chỗ là làm sao để nó kêu theo cài đặt thôi, em dùng chuông điện 220v chỉ cần đóng rơ le là kêu, giờ mình phải đổ chuông theo cài đặt người dùng ý, kếu trong t giây và số lần kêu là n lần, :
                    Số lần chuông kêu và tg kêu thì đơn giản sử dụng hàm trễ và vòng lặp while cho 1 biến đếm số lần chuông là được
                    Last edited by nhanmd; 31-01-2013, 22:43.
                    Chuyên thiết kế mạch điều khiển, lắp đặt cơ khí, ĐT: 0913059995.

                    Comment


                    • #11
                      Nguyên văn bởi ngocchuong90 Xem bài viết
                      phần bác nói thì em đã hoàn thành rồi, giờ chỉ có mỗi chỗ là làm sao để nó kêu theo cài đặt thôi, em dùng chuông điện 220v chỉ cần đóng rơ le là kêu, giờ mình phải đổ chuông theo cài đặt người dùng ý, kếu trong t giây và số lần kêu là n lần, :
                      Lắp thêm 1 bộ phát chuông dùng timer 555 đó bạn. có 1 chân on/off của 555.

                      Comment


                      • #12
                        Nguyên văn bởi phuphuongbk Xem bài viết
                        Lắp thêm 1 bộ phát chuông dùng timer 555 đó bạn. có 1 chân on/off của 555.
                        mình vẫn băn khoăn về khoản thiết lập số lần lặp cho nó, và dùng vi điều khiển bạn ạ

                        Comment


                        • #13
                          Nguyên văn bởi nhanmd Xem bài viết
                          Số lần chuông kêu và tg kêu thì đơn giản sử dụng hàm trễ và vòng lặp while cho 1 biến đếm số lần chuông là được
                          e dùng codevision hàm delay phải fix thẳng số sao ý giờ người dùng đặt t giây thì delay kiểu gì bác ?

                          Comment


                          • #14
                            Nguyên văn bởi ngocchuong90 Xem bài viết
                            e dùng codevision hàm delay phải fix thẳng số sao ý giờ người dùng đặt t giây thì delay kiểu gì bác ?
                            Code:
                            void delay_microsec(unsigned int time){
                            while(time>0){
                                  delay_ms(100);
                                  time--;
                                 }
                            }

                            Comment

                            Về tác giả

                            Collapse

                            ngocchuong90 Tìm hiểu thêm về ngocchuong90

                            Bài viết mới nhất

                            Collapse

                            Đang tải...
                            X