Hello, everyone!
I've recently bought an Arduino Kit and developed a project trying to print some phrase controlled by a push button. With all you guys' helps, following former Q&As , I managed to connect and initiate QR204 Mini Thermal Printer from AliExpress (since ones from Adafruit are no more possible to get), and it works on 1 time without the button.
This is the code:
#include "Adafruit_Thermal.h"
#include "SoftwareSerial.h"
#define TX_PIN 3
#define RX_PIN 2
SoftwareSerial mySerial(RX_PIN, TX_PIN);
Adafruit_Thermal printer(&mySerial);
void setup() {
mySerial.begin(9600);
printer.begin(9600);
printer.wake();
printer.setDefault();
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
delay(4000);
printer.println(F("Text1"));
delay(3000);
printer.setLineHeight(50);
printer.justify('C');
printer.inverseOn();
printer.println(F("Text2"));
printer.inverseOff();
printer.justify('L');
printer.setLineHeight(150);
printer.println(F("Text3"));
printer.setLineHeight();
printer.println(F("Text4, "));
delay (2000);
printer.setLineHeight(100);
printer.println(F("Text5"));
printer.justify('C');
printer.setLineHeight(150);
delay(3000);
printer.println(F("Text6"));
printer.justify('L');
printer.setLineHeight();
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
delay(3000);
printer.setDefault();
printer.sleep();
}
void loop() {
}
And now I'm trying to make it work when the button is pushed, but it doesn't work.
I cannot find the reason so writing this for help.
Below is the code I failed.
#include "Adafruit_Thermal.h"
#include "SoftwareSerial.h"
#define TX_PIN 3
#define RX_PIN 2
#define button1 7
SoftwareSerial mySerial(RX_PIN, TX_PIN);
Adafruit_Thermal printer(&mySerial);
void setup() {
pinMode(button1, INPUT_PULLUP);
Serial.begin(9600); //PC-Arduino Communication
mySerial.begin(9600); //Arduino-Printer Communication
printer.begin();
}
void loop() {
//Pushing button
if(digitalRead(button1) == LOW){
//button is pressed
printer.wake();
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
delay(4000);
printer.println(F("Text1"));
delay(3000);
printer.setLineHeight(50);
printer.justify('C');
printer.inverseOn();
printer.println(F("Text2"));
printer.inverseOff();
printer.justify('L');
printer.setLineHeight(150);
printer.println(F("Text3"));
printer.setLineHeight();
printer.println(F("Text4"));
delay (2000);
printer.setLineHeight(100);
printer.println(F("Text5"));
printer.justify('C');
printer.setLineHeight(150);
delay(3000);
printer.println(F("Text6"));
printer.justify('L');
printer.setLineHeight();
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
printer.println(F(" "));
delay(3000);
printer.setDefault();
printer.sleep();
}
}
Plus, adding next code for the end part also doesn't work.
else {
printer.setDefault();
printer.sleep(); }
And this is the circuit.
I'm so novice to Arduino and coding, and also English is not my first language so sorry for all clumsinesses.
Thank you!