Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - kanking1150

Pages: [1] 2
1
เวลาผมใช้ AT Command แล้วผมรอดักค่าที่มันจะรีสปอนส่งกลับมาจากตัวesp8266บางทีมันจะได้พวกภาษาต่างดาวกลับมาด้วยอันนี้
มีใครมีปัญหาแบบผมแล้วมีวิธีแก้ไหมครับ
ปล.เดียวผมหาตัวใหม่มาลองละเอาภาพปัญหาผมขึ้นมาให้ดูครับ ขอตัวไปหาบอร์ดใหม่ก่อน orz ซื้อมาได้เดื่อนเดียวพังซะละ

2
ถ้าแอดมินผ่านมาเจอฝากลบทีครับ
ขอ ผมรออุปกรณ์ตัวใหม่เพื่อแก้ไขปัญหาก่อนและเทสให้มันเรียบร้อยครับ

3
ระบบสั่งการด้วยเสียง
มีใครมีแนวทางในการโปรแกรมไมโครคอลโทรลเลอร์ประเภทนี้มั่งครับ -.-
หรือ keyword สำหรับคำค้นหาข้อมูลก็ได้ครับ ปล.ผมเห็นโมดูลพวก
80 40 คำำวกนี้จะเกี่ยวข้องกันไหมครับ ขอความกรุณาด้วยครับ :)

4
 :o
มีปัญหามาถามอีกแล้วครับ
แต่ช่วงต้นเทิมก่อนจะซัมเมอร์ได้ความรู้ไปหลายแนวเลยจริงๆนะ :P

โมก่อนเข้าปัญหา:
ปกติตอนผมใช้ SD.h เนี่ยผมจะเขียนไปในทางว่าถ้าการ์ดเก็บข้อมูลมันไม่ได้เสียบอยู่กับเครื่องแล้วเราจะเอาการ์ดมาเสียบคืนใส่นั้นเมื่อเราเสียบไปแล้วให้ทำการรีบูทเครื่องของเราด้วยนะ
ซึ่งเป็นวิธีแก้ขัดเฉพาะหน้าตอนผมส่งโค้ดและตัวอย่างงานให้อาจารย์แล้วก็ผ่านไปได้ด้วยดี ซึ่งเลยเกิดความคิดว่าเอะทำไมผมไม่ทำให้มันไม่ต้องrebootหละ

เข้าปัญหาละ:
ปัญหาก็คือผมลองนำเจ้าsd.begin ไปไว้ในloopมันก็ไม่ได้นี่สิ เลยเขียนเป็นfunctionแยก ซึ่งตอนเรียกใช้ก็แลดูเหมือนจะใช้ได้ :'( เพราะจากความเข้าใจของผม SD.beginคือ
มันจะดูว่าขาของ sdcard หรือ cspin ต่ออยู่ใช่หรือไม่ เพราะฉะนั้นผมเลยต่อLEDเข้าไปตรงcspinด้วยเพื่อดูการทำงานตอนถอดการ์ดออกกับเสียบการ์ดเข้า ซึ่งเป็นไปดังคาดเมื่อถอดการ์ดออก
ledดับใส่การ์ดเข้าledสว่าง แต่พอลองทดสอบไปทดสอบมาจะมีจังหวะหนึ่งซึ่งยังไงๆก็ต้องทำให้รีบูทคืออยู่ๆledก็ส่วางเองเฉยเลยโดยที่ถอดการ์ดออกไปแล้ว แล้วพอเช็คดูจากความเข้าใจผมนั้น
ledสถานะไฟติดมันต้องมีsdcardเสียบอยู่สิเลยถอดสายcspinของโมดูลออกแล้วเอาสายจิ้มจากพอตไมโครที่ตั้งไว้มาใส่ledดูปรากฏว่าไฟมาจากพอตของขาไมโครที่เอาไว้เสียบcspinก็ยังงอยู่
ที่ไม่ได้น่าจะมาจากตรงจุดนนี้แหละเท่าที่ผมคิด

ในคลิปที่ผมอัดไว้ประมาณวินาทีที่ 19 - 20 ไฟจะติดค้างตลอดเลยครับซึ่งไม่ว่าจะถอดออกหรือใส่เข้าไฟก็ยังอยู่ - - ก็เลยรีบแจ้นมาขอความช่วยเหลือครับซึ่งอันนี้ผมเอาโค้ดdataloggerในแซมเปิ้ลมา
ทดลองทำนะครับอาจจะมั่วไปเยอะขออภัยในที่ี้ด้วย

Code: [Select]
#include <SPI.h>
#include <SD.h>

#define chipSelect 10

int i=0;

void connection_sd(void);

void setup()
{
  pinMode(chipSelect,INPUT);
  Serial.begin(9600);
  connection_sd();
}

void loop() {
  String cout = String(i++);
  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  if (dataFile)
  {
    dataFile.println(cout);
    dataFile.close();
    SD.exists("datalog.txt");
    Serial.println(cout);
  }
  else {
    Serial.println("error opening datalog.txt");
    connection_sd();
  }
}
void connection_sd(void)
{
  Serial.println("Initializing SD card...");
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    return;
  }
  else
    Serial.println("card initialized.");
}

https://www.youtube.com/watch?v=w6ond5B81Aw&feature=youtu.be

5
สอบถามหน่อยครับใครเคยสั่งของกับinexมั่งพอดีผมสั่งของกับเจ้านี้ครังแรกเลยพึ่งเคยเจอปัญหา
สั่งไปแล้วแจ้งยอดชำระไปแล้ว แต่ใบสั่งซื้อยังขึ้นรอชำระเงินอยู่เลยนี่ 3 วันจะ 4 วันละเจ้าอื่นผม
ที่เคยสั่งนี้ก็วันเดียวหรือ2วันเอง หรือว่าผมสั่งยังไม่บ่อยเลยเจอปัญหา - -"

6
 :-\
ตั้งกระทู้นี้ต่อเพื่อเป็นหาแนวทางที่จะไปต่อและเพื่อพัฒนาความเข้าใจของตัวเองครับ

เข้าเรื่องเลย คือผมสังสัยการใช้งาน typedef struc โดยส่วนตัวนะผมไม่ได้ใช้ไอ้เจ้าตัวนี้เลยนับตั้งแต่เรียนมาเคยพอใช้บ้างตอนเรียนโครงสร้างข้อมูลพวก ต้นไม้ทั้งหลาย ลิ้งลัส
แต่เอาตรงๆก็คือแค่การเขียนตาม อัลกอริทึ่มที่มีมาแต่ต้นแล้ว แล้วผมเข้าใจว่ามันใช้สำหรับสร้างชุดข้อมูลขึ้นมา 1 ชุด หรือ กี่ชุดก็ตามแต่แล้วแต่เราจะเรียกใช้ ซึ่งผมไม่รู้ว่าในงาน
ไมโครคอนโทรเลอร์เนี่ยสิ่งพวกนี้เค้าใช้สำหรับทำอะไร หรือใช้เพื่อกำหนดชุดข้อมูลเพื่อแยกเป็นคลาสๆไปแค่นั้นหลอมังก็คงจะไม่ใช่

แล้วอีกตัวเลยสำหรับผมก็คือ พ้อยเตอร์ ตัวนี้ผมใช้แทนการ return ค่าฟังชั่นหนึ่งไปอีกฟังชั่นหนึ่งที่ต้องการค่ามากกว่า 1 ค่า เพราะผมคิดว่าน่าจะประหยัดกว่าการประกาศ globalvar อันนี้ผมคิดเอาเองนะ

ถ้ามีผู้รู้หรือใครก็ได้ที่ทำงานด้านนี้แบบจริงจังแล้วเขียนโปรแกรมเองไม่ก็ทำงานเป็นทีมช่วยตอบสงเคราะห์ผมทีเถอะผมมองภาพยังไม่ออกเลยว่า เจ้าstruc ทั้งหลายจะนำไปใช้กับงานแบบไหน
หรือพอยเตอร์เราเหมาะเอาไปใช้งานแบบไหนอีก

ปล.
ซึ่งเอาเข้าจริงๆตอนนี้รู้ศึกว่าตัวเองรู้น้อยมากๆ ถึงมากที่สุด เลยมาตั้งกระทู้ถาม ใจจริงผมอยากถามอาจารย์ในแผนกเหมือนกันนะแต่รู้ศึกจะติดปัญหาตลอดเลยตอนผมเข้าไปเลยไม่ได้มีโอกาศถามซักที
แล้วก็สำหรับการที่ผมเขียน arduino อย่างเดียวทำให้สกิล ไมโครผมกากมากๆ ซึ่งพอนึกย้อนกลับไป ตอนทำ pic ตอนนั้นผมเขียนติดต่อกับ lcd ผมต้องมานั่งทำความเข้าใจเกี่ยวกับเนื้อหาที่ อาจารย์
สอนตั้ง 3 4 วัน แต่ arduino ผมแค่โหลด lib จึ้กเดียว อยู่เลย  :P เลยคิดว่ามันสดวกโคตรๆจนเกินไป ซึ่งรู้ศึกสำนักจนอยากไปซื้อเจ้าpickit มาเล่นหัดใหม่ซะเหลือเกิ้น

7
เริ่มเรื่อง:พอดีผมใช้โมดูลRTC ds1307 กับ ds3231 ทีนี้เวลามันจะนับเวลาในส่วนของวันมันจะนับจบที่31วันผมก็เลยเขียนโปรแกรมปฏิทินลงไปด้วยเพื่อใช้ตรวจสอบเวลาและวันที่เพื่อไม่ให้โมดูลมันนับจำนวนเลขเกินตามที่กำหนดตามปฏิทินปกติ แล้วผมก็เอาเรื่องที่ผมทำ ไปเขียนส่งไปกับรายงานการทำงานของผมแล้วส่งอาจารย์ไป พอเช้าวันรุ่งขึ้นก็เลยได้มีโอกาศคุยกับอาจารย์แกก็เลยแนะนำมาว่าตัวโมดูลเนี้ยในตัว *โมดูลRTCมันจะมี โปรแกรมปฏิทิน1000 ปีอยู่แล้วแค่เราต้องไปเปิดใช้การทำงานของโปรแกรมแค่นั้นเอง

ทีนี้คำถามผมมันติดตรง * นี่หละนะครับที่สงสัย
1.มันมีจริงๆ หลอครับไอ้โปรแกรม ปฏิทิน 1000 ปีที่อยู่ในตัวโมดูล ขอสอบถามผู้รู้ทีนะครับ
2.มันสามารถเปิดการทำงานในส่วนนี้ได้ยังไงหลอครับในส่วนนี้ เพราะโปรแกรม ปฏิทิน ที่ผมเขียน เป็นแบบเช็ค 400 ปีตามที่หาข้อมูลได้ปกติทัวไป ถ้าเปิดใช้ได้มันจะทำให้ผมประหยัดเนื้อที่โปรแกรมกับไม่ต้องไปกังวลกับโปรแกรมที่เขียนโดยไม่เป็นรู้ว่าบัคยังเหลืออีกเยอะแค่ไหน

กับวิธีเขียนติดต่อกับโมดูลเวลาผมใช้ library wire.h ในการติดต่อ โดยการติดต่อแบบi2cโดยผมเขียนแล้วหาsample codeจากgoogleแล้วเจอของเวเ็บนี้ ก็เลยหัดเขียนจากตัวอย่างโค้ดของเว็บนี้
แต่ก็มีส่วนที่สงในในโค้ดของเค้าตรงจุดที่ใช้พอยเตอร์ ชี้ตำแหน่งให้ wire.read() ไปที่ตัวแหน่งของ 0x7f กับ 0x3f พอจะเก็ตว่าเป็น addressของส่วนsecจนถึงyear แต่ก็งงว่าแค่wire.wirte(0)ไม่เพียงพอที่จะเซ็ตตำแหน่งเริ่่มต้นให้ร้องขอข้อมูลจากตัวแหน่งที่ 00h ถึง 06h ของโมดูลหลอครับหรือมีเพื่อป้องกันความผิดพลาดอะไรบางอย่าง
http://tronixstuff.com/2014/12/01/tutorial-using-ds1307-and-ds3231-real-time-clock-modules-with-arduino/

8
ผมเจอปัญหา กับโมดูลทั้ง2ตัวเลยครับจะขึ้นตามรูป



พอลองหาวิธีฟิกแก้ปัญหา บางคนว่าเพราะไม่ได้ทำการpullup บางคนก็ว่าVbatโวลสูง บางคนบอกสายอาจไม่ดี
ผมก็เลยแก้มันทั้ง3วิธีเลย เปลี่ยนสายให้หนาขึ้น ลดVbatจาก3.3ลงมาใ้หเหลือ2.8ก็แล้วก็ยังเจอปัญหาอยู่
ตอนนี้ก็เหลือแต่ไปซื้อds1307ตัวใหม่มาลองว่ามันเสียรึเปล่า


Pages: [1] 2