lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

attiny85 แสดงค่าที่อ่านได้จาก A0 ได้อย่างไรครับ (Serial.begin(9600);)

sw
sw (Guest)
IP: 119.42.75.x
1 ปีที่ผ่านมา

คือผมทดสอบ attiny85 ตาม web ที่เขียนไว้ได้แล้ว แต่ว่าจะแสดงค่าที่อ่านได้จากการอ่าน analogRead(A0);

เหมือน ATMEGA328 ทั่วไปครับ ใช้ IDE Ver 1.0.5 เพราะว่า attiny 85  ไม่รองรับคำสั่ง Serial.begin(9600);

 

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน
เจ้าของร้าน
1 ปีที่ผ่านมา

Attiny ไม่มีขา Hardware Serial สามารถใช้ Software Serial ได้ที่ความเร็วบอร์ดเรทสูงสุด 9600 ครับ

  • https://www.arduino.cc/en/Reference/SoftwareSerial
  • http://projectsfromtech.blogspot.com/2013/06/serial-communication-on-attiny85-with.html
QUOTE 
ความคิดเห็นที่ #2
sw
sw (Guest)
IP: 61.7.188.x
1 ปีที่ผ่านมา

ลองแล้วครับ แต่ output ออกมาเป็นภาษา ขอม ??????????? ถาษาต่างด้าวครับ

ความเร็วบอร์ดเรทสูงสุด 9600 ก็แล้ว เปลี่ยนทุก speed แล้วก็ยังอ่านไม่เป็นตัวครับ หรือว่าผม set ผิดตรงไหน

QUOTE 
ความคิดเห็นที่ #3
เจ้าของร้าน
เจ้าของร้าน
1 ปีที่ผ่านมา

ต่อตามนี้ออกแน่นอนครับ

 

QUOTE 
ความคิดเห็นที่ #4
sw
sw (Guest)
IP: 119.42.75.x
1 ปีที่ผ่านมา

รบกวนต่อครับดู code ให้หน่อยคือผม ทดสอบวนลูปส่งข้อมูลจาก attiny85 ขา3 ของ ic  (Pin#4)  แล้วใช้ UNO รับเข้าทางขา 3 ค่าที่รับเข้ามามันอ่านไม่ตรงมันอ่านค่าเป็น 0  128  ลองสลับขา RX TX แล้ว ขั้นตอนผมดังนี้

1. ***

ในส่วนของ code attiny85 ใช้  UNO เป็นตัวเบริน**

/* Code ในส่วนของ attiny 85 TX..... */

 

#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 4); // RX, TX

 

int pwm = 0;//ขา 5 ic

 

int analogInPin =A1;// ขา 7 รับค่าจาก VR แล้วส่งออกค่าขา 5 ic

 

void setup()  

{

      inMode(pwm, OUTPUT); 

       pinMode(analogInPin, INPUT);

      mySerial.begin(4800);

 }

 

void loop() 

{

      int analogIn = analogRead(analogInPin); // Read analog voltage on pin 2 (A1)

 

      analogWrite(pwm, analogIn / 4); // Output analog reading to dimmable LED

  

      mySerial.write(analogIn);//ส่งข้อมูลที่อ่านให้ UNO R3    ขา 4 attiny85

  

      delay(100);

 

}// End loop

2.*************************************

/* Code ในส่วนของ UNO R3 RX..... */

#include <SoftwareSerial.h>

 

 SoftwareSerial mySerial(3,4); // RX, TX ลองสลับขาดูแล้วกลัวต่อขาชนกัน

 int incomingByte = 0;   // for incoming serial data

 

 

void setup() {

               Serial.begin(9600);    

               mySerial.begin(4800);

             }

 

void loop() {

          if (mySerial.available() > 0) 

                 {

                  incomingByte = mySerial.read();

                   Serial.println(incomingByte,DEC);

                   

                  // Serial.println(incomingByte);

                   

//ลองปรับค่า VR ค่าที่รับได้แสดงไม่ถูกต้อง มันอ่านได้ 2 ค่า เท่านั้น คือ 0 และ 128

                     }

            }//End void loop 

            

3.******************************

 

ทำการต่อ Hardware ใหม่ ระหว่าง tx  rx ของ UNO =====> rx tx ของ attiny85

ตาม code attiny85 อ่านค่าจาก VR  ขา A1  ส่งออกทาง ขา pwm ตามค่าที่ปรับได้ปกติ พร้อมกับส่งข้อมูลทาง  SoftwareSerial mySerial(3, 4); //RX,TX   ไปให้ UNO รับเข้ามา ค่าปกติมันน่าจะอยู่ระหว่าง 0-1024 ใช่ไหมครับ แต่มันอ่านไม่เป็นตามนั้นครับ

 ***************** ค่าที่อ่านได้เป็นแบบนี้ครับ

0

128

0

128

128

/**********************

ไม่ทราบว่าผิดตรงไหนครับ

QUOTE 
ความคิดเห็นที่ #5
เจ้าของร้าน
เจ้าของร้าน
1 ปีที่ผ่านมา

แบ่งเป็น 2 ส่วนนะครับ

1. ส่วนที่ถามมา การแสดงค่าผ่าน serial ดูจากข้อมูลแสดงว่าทำได้แล้ว

2. ส่วนที่ถามเพิ่มเติม ผมบอกให้ไม่ได้ว่าผิดตรงไหน การอ่านค่า analog ลองตามในเว็บก่อน แล้ว debug ดูทีละขั้น ได้ผลยังไงแชร์ด้วยนะครับ

QUOTE 
ความคิดเห็นที่ #6
sw
sw (Guest)
IP: 110.78.139.x
1 ปีที่ผ่านมา

ok ผมจะ debug ดูสำเร็จจะแชร์ให้ครับ อย่างน้อยผมก็ไม่หลงทางใช่มั้ยครับ

QUOTE 
ความคิดเห็นที่ #7
เจ้าของร้าน
เจ้าของร้าน
1 ปีที่ผ่านมา

ทำเสร็จแชร์ให้ดูด้วยนะครับ : )

QUOTE 
ความคิดเห็นที่ #8
sw
sw (Guest)
IP: 110.78.140.x
1 ปีที่ผ่านมา

มาช่วยกันวิเคราะห็ดีมั้นครับ ผมงงๆๆ ประเด็นที่คงสัย

1. Speed ไม่ตรงกัน 

2. การต่อ Hardwave ไม่น่ามีปํญหา

3.code ในส่วนของ attiny85 เวลาปรับค่า VR แล้ว out ที่ analogWrite(pwm, analogIn / 4); มันก็หรี่ไฟ ตามค่าที่ปรับ

ตอนนี้ผมไม่รู้จะ debug  อย่างไร สงสัยต้อง เริ่มไหม่ก่อน ผมจะทดทอบในส่วนของ code SoftwareSerial ก่อน แต่จะใช้ Broad UNO R ทั้งด้าน ส่ง และ  รับ ว่ามีปํญหามั้ย..!! แล้วค่อยว่าเรื่องของ attiny85 อีกทีครับ

QUOTE 
ความคิดเห็นที่ #9
sw
sw (Guest)
IP: 119.42.74.x
1 ปีที่ผ่านมา

 

ยังสรุปไม่ได้ครับ มันเป็นงงๆ ปัญหาอยูที่ SoftwareSerial ตัวนี้หรือเปล่า ผมไม่เข้าใจว่าทำไหมต้องกำหนดขา tx rx ให้เหมือนกันจึงจะรับข้อมูลได้ และการรับข้อมูลก็ไม่ครบหลักด้วย คือผมพิมพ์ 123456789 กดส่ง ค่าที่รับได้ เป็น 1239 แถมต้องเป็นแบบ one way ด้วย งงๆๆๆๆๆๆๆๆๆๆๆๆ

 

***************** code BROAD UNO   รับข้อมูล  ***********

#include <SoftwareSerial.h>

 

//SoftwareSerial mySerial(10, 11); // RX, TX  แบบนี้รับข้อมูลไม่ได้ สลับขา tx rx ดูแล้ว

SoftwareSerial mySerial(10, 10); // RX    แบบนี้รับข้อมูลได้ แต่เป็นแบบ one way

 

void setup()  

{

  // Open serial communications and wait for port to open:

  Serial.begin(57600);

  while (!Serial) {

    ; // wait for serial port to connect. Needed for Leonardo only

  }

 Serial.println("Goodnight moon!");

 

  // set the data rate for the SoftwareSerial port

  mySerial.begin(4800);

  mySerial.println("Hello, world COM3");

}

 

void loop() // run over and over

{

  if (mySerial.available())

    Serial.write(mySerial.read());

  if (Serial.available())

    mySerial.write(Serial.read());

}

 

 

 

**************************** BROAD PRO Mini  ส่งข้อมูล

#include <SoftwareSerial.h>

 

//SoftwareSerial mySerial(11, 10); // RX, TX

SoftwareSerial mySerial(11, 10); // TX

 

void setup()  

{

  // Open serial communications and wait for port to open:

  Serial.begin(57600);

  while (!Serial) {

    ; // wait for serial port to connect. Needed for Leonardo only

  }

 

 

   Serial.println("Goodnight moon!");

 

  // set the data rate for the SoftwareSerial port

  mySerial.begin(4800);

  mySerial.println("Hello, world COM4");

}

 

void loop() // run over and over

{

  if (mySerial.available())

    Serial.write(mySerial.read());

  if (Serial.available())

    mySerial.write(Serial.read());

}

 

QUOTE 
ความคิดเห็นที่ #10
sw
sw (Guest)
IP: 119.42.74.x
1 ปีที่ผ่านมา

คุณเจ้าของร้านครับ อยากคุยกับคุณเรื่อง SoftwareSerial ผมมีข้อถามนิดหน่อยรบกวนสัก 5 นาที ช่วย ส่งเบอร์โทร ทาง e-mail sawoey.p@gmail.com ให้ผมได้ไหม ยังไม่ยอมต้องรู้ว่ามันเป็นอะไรแน่....

1
2
ถัดไป ›
แสดงความคิดเห็นที่ 1-10 จากทั้งหมด 14 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

หมวดหมู่สินค้า

สมาชิก Arduino All

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

Arduino All ขายดี

รหัสสินค้า A015
275.00 บาท
  • สั่งซื้อ
รหัสสินค้า A233
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A115
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า A238
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A097
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A014
90.00 บาท
  • สั่งซื้อ
รหัสสินค้า A237
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A474
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A225
5.00 บาท
  • สั่งซื้อ
Go to Top